Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
logiciels:git [2016/09/13 12:10]
127.0.0.1 modification externe
logiciels:git [2019/10/26 21:08] (Version actuelle)
Ligne 1: Ligne 1:
 ====== Git ====== ====== Git ======
  
-Outils de consultation des dépôts : [[http://git.clubelek.tk/]] (login : ''​git'',​ mot de passe : ''​serveurencarton''​)+FIXME //Work in progress...//
  
-===== Comment avoir accès ​en lecture/​écriture aux dépôts =====+Tout le monde a au moins une fois travaillé sur un projet de groupe ​en travaillant sur différents documents. Même si aujourd'​hui on peut travailler tous ensemble sur des documents en ligne, parfois on fait face à des problèmes du type: "Où sont passées mes modifications?",​ "Qui a écrit cette partie?",​ "​Quelle est la version la plus récente de ce document?",​ ... Les logiciels de gestion de version permettent de résoudre tous ces problèmes. A chaque fois que des documents sont modifiés, ces logiciels enregistrent la nouvelle et l'​ancienne version, ainsi que des données par rapport à cette modification (auteurs, date et heure, commentaires,​ ...). Cela les rend indispensables pour chaque projet, ce qui en fait des outils indispensables au ClubElek. On va parler de Git, un logiciel libre qui est de plus en plus utilisé.
  
-Il faut tout d'​abord installer un client Git+==== Panoramique ====
  
-==== Linux ====+Git est un logiciel de gestion de version open-source et décentralisé (c'​est-à-dire que l'​utilisateur n'est pas forcé de se connecter à un serveur pour travailler sur le code source). De plus, il possède plusieurs avantages par rapport à d'​autres logiciels comme Subversion:​ 
 +  * comme déjà dit, Git est décentralisé:​ une fois téléchargé les documents à modifier, on peut y travailler partout et envoyer ses fichiers quand on le retient opportun, alors que dans un logiciel centralisé il faut être toujours connecté au dépôt pour travailler sur le code. Avec Git, on télécharge tout le projet en local, sans avoir besoin d'​aller sur le dépôt central 
 +  * Git est un logiciel rapide et performant (surtout si on veut créer une nouvelle branche du projet, voir les détails plus loin) 
 +  * il y a de nombreux sites qui hébergent des projets versionnés avec Git comme [[https://​github.com/​ | GitHub]] ou [[https://​about.gitlab.com/​ | GitLab]], où on peut travailler sur des projets publics ou partager les vôtres (que ce soit avec tout le monde ou seulement avec votre équipe) 
 +  * j'ai déjà dit qu'il est open-source? ​
  
-  * Installer le paquet ''​git-core''​ ou ''​git''​ de votre distributionainsi que le paquet ''​openssh-client''​. +Bien sûrGit a aussi des défauts, comme sa complexité (due au fait que le système est décentralisé) ou (pour certains) ​le fait de devoir travailler sur la console (les programmes avec interface graphique ​n'offrent ​pas tous les commandesmais ils suffisent ​pour une utilisation "pas trop avancée"​). On va essayer ici de lister les commandes de baseen sachant qu'il y a beaucoup ​de sites Web pour aller plus loin (comme [[https://git-scm.com/book/fr/v2 | le guide officiel de Git]])Si vous souhaitez apprendre ​à utiliser Git rapidement, voici [[https://​try.github.io/​ | un site ]]où l'on peut tester les commandes proposées en ligne.
-  * Regarder dans le dossier ''​~/​.ssh/''​ s'il y a les fichiers ''​id_rsa''​ et ''​id_rsa.pub''​. S'​il ​n'y sont pas, lancer la commande ''​ssh-keygen'' ​pour générer ​une nouvelle paire de clefs SSH (laisser le chemin par défautle type par défaut (RSA), et choisir une phrase ​de passe (ou pas)) +
-  * Envoyer le fichier ''​~/.ssh/id_rsa.pub'' ​à un des administrateurs du serveur KS du ClubElek (voir [[bureau:kimsufi]]) et lui demander d'ajouter la clef à la liste des utilisateurs autorisés.+
  
-==== Windows ​====+==== Installation ​====
  
-  * Télécharger ​Git sur le site officiel : [[http://​git-scm.com/​downloads]] +Git étant un programmeil faut naturellement ​le télécharger ​et l'installer.
-  * Installer en laissant les options par défaut. +
-  * Lancer Git-Bash (depuis le menu démarrer) et lancer la commande ''​ssh-keygen''​ pour générer une nouvelle paire de clefs SSH (laisser le chemin par défaut, le type par défaut (RSA), ​et choisir une phrase de passe (ou pas)) +
-  * Envoyer le fichier ''​~/​.ssh/​id_rsa.pub''​ à un des administrateurs du serveur KS du ClubElek (voir [[bureau:​kimsufi]]) et lui demander d'​ajouter la clef à la liste des utilisateurs autorisés. ''​~''​ correspond au dossier personnel de l'utilisateur. Sous Windows 7 et 8, il s'agit du dossier ''​C:​\Users\<​nom d'​utilisateur>​\''​.+
  
-==== Mac OS X ====+=== Linux ===
  
-FIXME+Git devrait être déjà présent dans votre ordinateur, sinon installez les paquets ''​git-core''​ ou ''​git''​ et ''​openssh-client''​ (pour l'​authentification via SSH, voir plus loin). Ou bien vous pouvez passer par le site officiel: ​ [[http://​git-scm.com/​downloads]]. 
 + 
 +=== Windows === 
 + 
 +  * Téléchargez Git sur le site officiel : [[http://​git-scm.com/​downloads]] 
 +  * Installez en laissant les options par défaut. 
 + 
 +=== Mac OS X === 
 + 
 +FIXME //La procédure devrait être semblable à celle de Linux, mais on doit vérifier.//​ 
 + 
 +Vous pouvez passer par le site officiel. 
 + 
 +==== Commandes de base ==== 
 + 
 +=== git init === 
 +Pour commencer à utiliser Git, il faut initialiser un dossier pour le rendre un dépôt ​ Git. Pour cela, il faut entrer dans le dit dossier et taper cette commande, qui va créer un dossier .git (caché sous Linux) et va vous permettre de versionner vos fichiers. 
 + 
 +=== git status === 
 +Cette commande permet de contrôler si les fichiers ont été modifiés depuis les dernières modifications. On peut avoir les cas suivants: 
 +  * le fichier n'est pas suivi (c'​est-à-dire que Git n'​enregistre pas ses changements),​ il est alors un **untracked file** 
 +  * le fichier est suivi et il a des modifications à enregistrer (fichier créé, modifié, ...). Si vous les avez ajoutés à la liste des modifications à enregistrer (voir **git add**), il sera dans la section **changes to be committed**,​ sinon il sera dans **changes not staged for commit**. 
 +  * le fichier est suivi, mais il n'a pas été modifié. Il n'​apparaîtra donc pas ici. 
 + 
 +=== git add === 
 + 
 +Cette commande ajoute les fichiers modifiés dans la liste des modifications à valider (voir **git commit**).  
 + 
 +=== git commit === 
 + 
 +Cette commande enregistre les modifications effectuées aux fichiers choisis. Il faut aussi écrire un message pour résumer les modifications,​ sinon la sauvegarde ne se fera pas. 
 + 
 +Une petite image pour résumer ces commandes:​ 
 + 
 +{{ :​logiciels:​git:​file_lifecycle.jpg | Cycle de vie d'un fichier avec Git}} 
 + 
 +=== git checkout === 
 + 
 +=== git rm === 
 + 
 +=== git branch === 
 + 
 +=== git pull === 
 + 
 +=== git push === 
 + 
 +---- 
 + 
 + 
 +Les dépôts sont des grains GitLab sur le Sandcats du club. 
  
 ===== Comment cloner un dépôt ===== ===== Comment cloner un dépôt =====
Ligne 31: Ligne 79:
  
   * Ouvrir un terminal et naviguer jusqu'​au dossier où on veut cloner le dépôt.   * Ouvrir un terminal et naviguer jusqu'​au dossier où on veut cloner le dépôt.
-  * Utiliser la commande ​''​git clone git@clubelek.tk:<​nom du dépôt>'', ​par exemple ''​git clone git@clubelek.tk:​m4''​. +  * Utiliser la commande ​donnée ​par Gitlab
-  * Si un mot de passe est demandé, c'est que la clef SSH n'a pas été ajoutée à la liste des utilisateurs autorisés ou qu'​elle n'est pas utilisée par git au moment du clone.+
  
 ==== Windows ==== ==== Windows ====
Ligne 41: Ligne 88:
  
   * Ouvrir un explorer et naviguer jusqu'​au dossier où on veut cloner le dépôt.   * Ouvrir un explorer et naviguer jusqu'​au dossier où on veut cloner le dépôt.
-  * Faire un clic droit => //Git GUI// => //Cloner un dépôt existant//. Mettre ''​git@clubelek.tk:<​nom du dépôt>'' ​comme //URL du dépôt//, par exemple ''​git@clubelek.tk:​m4''​.+  * Faire un clic droit => //Git GUI// => //Cloner un dépôt existant//. Mettre ​l'URL donnée par Gitlab ​comme //URL du dépôt//.
   * Cliquer sur //Clone//.   * Cliquer sur //Clone//.
-  * Si un mot de passe est demandé, c'est que la clef SSH n'a pas été ajoutée à la liste des utilisateurs autorisés ou qu'​elle n'est pas utilisée par git au moment du clone. 
  
 En ligne de commande : En ligne de commande :
Ligne 59: Ligne 105:
  
 N'​hésitez pas à demander conseil à des gens du ClubElek qui sont habitués à Git. N'​hésitez pas à demander conseil à des gens du ClubElek qui sont habitués à Git.
 +