Julien Dehos il y a 8 ans
Parent
commit
17ff53afad
7 fichiers modifiés avec 73 ajouts et 48 suppressions
  1. 9 3
      branches.md
  2. 10 6
      depot_distant.md
  3. BIN
      depot_distant_09a.png
  4. 13 6
      depot_local.md
  5. 8 8
      depot_local_checkout_03.svg
  6. 17 13
      depot_local_checkout_04.svg
  7. 16 12
      depot_local_checkout_05.svg

+ 9 - 3
branches.md

@@ -31,6 +31,8 @@ On peut avoir plus d'information avec la commande `git log --graph --oneline --d
 
 ![](branches_21.png)
 
+Sur le graphe des commits, on indique la branche courant avec un `*`.
+
 ![](branches_02.svg)
 
 ## Créer une nouvelle branche locale
@@ -50,6 +52,7 @@ La commande `git checkout ...` permet de sélectionner une branche.
 ![](branches_04.svg)
 
 Les nouveaux commits sont alors effectués pour la branche sélectionnée.
+Par exemple, si on modifie le fichier `paper.tex` et qu'on commite ensuite :
 
 ![](branches_05.png)
 
@@ -64,13 +67,14 @@ Le `master` est une branche comme les autres qu'on peut également sélectionné
 ## Fusionner des branches
 
 Pour fusionner des branches, il faut d'abord sélectionner la branche qui doit
-recevoir les modifications puis utiliser la commande `git merge`.
+recevoir les modifications puis utiliser la commande `git merge` en précisant
+la branche qu'il faut intégrer dans la branche courante.
 
 ![](branches_08.png)
 
 ![](branches_07.svg)
 
-Un nouveau commit, correspondant à la fusion est alors créé. On peut le 
+Un nouveau commit, correspondant à la fusion, est alors créé. On peut le 
 vérifier avec un `git log`...
 
 ![](branches_09.png)
@@ -87,6 +91,8 @@ l'envoyer également sur le serveur, il faut utiliser la commande `git push
 associées et il suffira ensuite d'un push classique de la branche locale pour
 l'envoyer sur le serveur.
 
+Par exemple, pour créer et envoyer la branche `intro_papier` sur le dépôt distant `origin` :
+
 ![](branches_11.png)
 
 ![](branches_08.svg)
@@ -133,7 +139,7 @@ correspondante sur le serveur), il faut utiliser la commande `git push --delete
 Généralement, vouloir supprimer un commit déjà envoyé sur le serveur est une
 mauvaise idée.  En effet, en plus de perdre les données sauvegardées, cela peut
 casser les commits d'un collaborateur qui aurait déjà récupéré et continué les
-commits en question, donc il vaut mieux committer des corrections.
+commits en question, donc il vaut mieux commiter des corrections.
 
 Mais si c'est vraiment ce que vous voulez faire, voici la procédure (pensez
 à vérifier que les commits locaux sont également supprimés sinon les commits

+ 10 - 6
depot_distant.md

@@ -73,10 +73,14 @@ Si vous avez déjà créé et modifié un dépôt local...
 ![](depot_distant_07a.svg)
 
 ... alors vous pouvez le synchroniser avec un dépôt distant.  Pour cela, il
-faut lancer la commande `git remote add origin ...` (pour ajouter, dans le
-dépôt local, un dépôt distant qu'on appellera `origin`) puis la commande `git
-push -u origin master` (pour pousser, dans le dépôt distant `origin`, la
-branche `master` du dépôt local).  Ces deux commandes synchronisent le dépôt
+faut lancer les commandes :
+
+1. `git remote add origin ...`  (pour ajouter, dans le
+dépôt local, un dépôt distant qu'on appellera `origin`) ;
+2. `git push -u origin master`  (pour envoyer, dans le dépôt distant `origin`, la
+branche `master` du dépôt local).
+
+Ces deux commandes synchronisent le dépôt
 distant et le dépôt local ; il n'est plus nécessaire de les relancer ensuite.
 
 ![](depot_distant_07b.png)
@@ -132,9 +136,9 @@ Il faut donc fusionner ces modifications, c'est-à-dire créer un nouveau commit
 rassemblant les modifications de `master` et de `origin/master` puis
 envoyer ce nouveau commit sur le serveur.  Git est souvent capable de faire ces
 fusions automatiquement mais parfois il n'arrive pas à résoudre le conflit et
-il vous demande de le faire manuellement.
+il vous demande de le faire manuellement.  Voici ce que ça peut donner, dans le
+cas d'une fusion avec conflit : 
 
-Dans le cas d'une fusion avec conflit, voici ce que ça peut donner : 
 ![](depot_distant_12.png)
 
 On est donc dans un état non commité et contenant un conflit à résoudre.

BIN
depot_distant_09a.png


+ 13 - 6
depot_local.md

@@ -34,6 +34,8 @@ peut rien casser.  N'hésitez donc pas à la lancer pour voir où vous en êtes.
 
 ![](depot_local_02.png)
 
+La command `git ls-files` affiche la liste des fichiers versionnés.
+
 ## Ajouter des fichiers dans le dépôt
 
 Il faut indiquer explicitement les fichiers que git doit journaliser.  
@@ -214,24 +216,26 @@ La commande `git tag` permet d'étiqueter des commits.
 
 ![](depot_local_22.png)
 
+![](depot_local_checkout_03a.svg)
+
 Ces étiquettes permettent d'indiquer des versions du projet et de revenir plus
 facilement à un commit particulier.
 
 ![](depot_local_22b.png)
 
-![](depot_local_checkout_03.svg)
+![](depot_local_checkout_03b.svg)
 
 ## Supprimer des commits précédents
 
-La commande `git reset 073...` place le `master` sur le commit "073..." et
+La commande `git reset 13a...` place le `master` sur le commit "13a..." et
 supprime tous les commits suivants **sans supprimer les modifications
 correspondantes**, qui sont alors regroupées dans l'état courant, non commité.
 
 ![](depot_local_checkout_04.svg)
 
-La commande `git reset --hard 073...` est équivalente à la commande précédente
+La commande `git reset --hard 13a...` est équivalente à la commande précédente
 sauf qu'elle **supprime les modifications correspondantes**.
-Les fichiers sont donc remis dans l'état du commit "073...", et `master` et
+Les fichiers sont donc remis dans l'état du commit "13a...", et `master` et
 `HEAD` pointent vers ce commit.
 
 ![](depot_local_checkout_05.svg)
@@ -243,6 +247,7 @@ Résumé des commandes git précédentes :
 ---|---|
 `git init` | initialise le dossier courant (nouveau dépôt git) |
 `git status` | affiche l'état courant des fichiers |
+`git ls-files` | affiche la liste des fichiers versionnés |
 `git add <fichiers>` | demande à git de versionner des fichiers |
 `git commit -a` | valide toutes les modifications courantes |
 `git mv <nom1> <nom2>` | renomme des fichiers versionnés |
@@ -251,7 +256,8 @@ Résumé des commandes git précédentes :
 `git checkout -- .` | supprime les modifications courantes (revient au commit)|
 `git checkout <commit/etiquette>` | revient à un commit sans rien supprimer |
 `git tag` | affiche la liste des étiquettes |
-`git tag <etiquette>` | crée une nouvelle étiquette |
+`git tag <etiquette> <commit>` | crée une nouvelle étiquette sur un commit donnée |
+`git tag <etiquette>` | crée une nouvelle étiquette sur le commit courant |
 `git reset <commit>` | supprime des commits et regroupe les modifications correspondantes dans l'état courant|
 `git reset --hard <commit>` | supprime des commits ainsi que les modifications correspondantes|
 
@@ -266,9 +272,10 @@ Quelques conseils de méthode de travail :
 ## Exercice
 
 - Créez un nouveau dépôt local, ajoutez des fichiers et faites quelques
-  commits ; affichez l'état du dépôt à chaque étape.
+  modifications+commits ; affichez l'état du dépôt à chaque étape.
 - Renommez et supprimez quelques fichiers.
 - Affichez l'historique des commits et revenez dans un état précédent du dépot.
+  Vérifiez que vos fichiers reviennent bien à l'état correspondant au commit.
 - Ajoutez une étiquette à un ancien commit et vérifiez que vous la voyez dans
   l'historique des commits ou avec un client git graphique.
 - Testez les suppressions de commits.

+ 8 - 8
depot_local_checkout_03.svg

@@ -4,19 +4,19 @@
 <g transform="translate(0,80)">
 
 <circle cx="50" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
-<text x="30" y="55" font-size="18"> 59d... </text>
+<text x="30" y="55" font-size="18"> 9ac... </text>
 
 <circle cx="150" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
-<text x="130" y="55" font-size="18"> 7b3... </text>
+<text x="130" y="55" font-size="18"> 3ca... </text>
 
 <circle cx="250" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
-<text x="230" y="55" font-size="18"> 073... </text>
+<text x="230" y="55" font-size="18"> a16... </text>
 
 <circle cx="350" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
-<text x="330" y="55" font-size="18"> ff0... </text>
+<text x="330" y="55" font-size="18"> 13a... </text>
 
 <circle cx="450" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
-<text x="430" y="55" font-size="18"> a8b... </text>
+<text x="430" y="55" font-size="18"> 055... </text>
 
 <defs>
 <marker id='head' orient="auto" markerWidth='4' markerHeight='8' refX='0.2' refY='3'>
@@ -33,9 +33,9 @@
 <text x="125" y="-45" font-size="18"> HEAD </text>
 <path marker-end='url(#head)' stroke-width='2' stroke='black' d='M150,-30 L150,10' />
 
-<rect x="100" y="120" width="100" height="40" fill="khaki" stroke-width="2" stroke="black" />
-<text x="110" y="145" font-size="18"> version1 </text>
-<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M150,120 L150,90' />
+<rect x="200" y="120" width="100" height="40" fill="khaki" stroke-width="2" stroke="black" />
+<text x="210" y="145" font-size="18"> version1 </text>
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M250,120 L250,90' />
 
 <rect x="410" y="120" width="80" height="40" fill="orange" stroke-width="2" stroke="black" />
 <text x="420" y="145" font-size="18"> master </text>

+ 17 - 13
depot_local_checkout_04.svg

@@ -4,15 +4,18 @@
 <g transform="translate(0,80)">
 
 <circle cx="50" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
-<text x="30" y="55" font-size="18"> 59d... </text>
+<text x="30" y="55" font-size="18"> 9ac... </text>
 
 <circle cx="150" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
-<text x="130" y="55" font-size="18"> 7b3... </text>
+<text x="130" y="55" font-size="18"> 3ca... </text>
 
 <circle cx="250" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
-<text x="230" y="55" font-size="18"> 073... </text>
+<text x="230" y="55" font-size="18"> a16... </text>
 
-<circle cx="350" cy="50" r="30" stroke="black" stroke-width="2" fill="white"/>
+<circle cx="350" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
+<text x="330" y="55" font-size="18"> 13a... </text>
+
+<circle cx="450" cy="50" r="30" stroke="black" stroke-width="2" fill="white"/>
 
 <defs>
 <marker id='head' orient="auto" markerWidth='4' markerHeight='8' refX='0.2' refY='3'>
@@ -23,19 +26,20 @@
 <path marker-end='url(#head)' stroke-width='2' stroke='black' d='M80,50 L110,50' />
 <path marker-end='url(#head)' stroke-width='2' stroke='black' d='M180,50 L210,50' />
 <path marker-end='url(#head)' stroke-width='2' stroke='black' d='M280,50 L310,50' />
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M380,50 L410,50' />
 
-<rect x="310" y="-70" width="80" height="40" fill="khaki" stroke-width="2" stroke="black" />
-<text x="325" y="-45" font-size="18"> HEAD </text>
-<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M350,-30 L350,10' />
-
-<rect x="100" y="120" width="100" height="40" fill="khaki" stroke-width="2" stroke="black" />
-<text x="110" y="145" font-size="18"> version1 </text>
-<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M150,120 L150,90' />
+<rect x="410" y="-70" width="80" height="40" fill="khaki" stroke-width="2" stroke="black" />
+<text x="425" y="-45" font-size="18"> HEAD </text>
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M450,-30 L450,10' />
 
-<rect x="210" y="120" width="80" height="40" fill="orange" stroke-width="2" stroke="black" />
-<text x="220" y="145" font-size="18"> master </text>
+<rect x="200" y="120" width="100" height="40" fill="khaki" stroke-width="2" stroke="black" />
+<text x="210" y="145" font-size="18"> version1 </text>
 <path marker-end='url(#head)' stroke-width='2' stroke='black' d='M250,120 L250,90' />
 
+<rect x="310" y="120" width="80" height="40" fill="orange" stroke-width="2" stroke="black" />
+<text x="320" y="145" font-size="18"> master </text>
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M350,120 L350,90' />
+
 </g>
 
 </svg>

+ 16 - 12
depot_local_checkout_05.svg

@@ -4,13 +4,16 @@
 <g transform="translate(0,80)">
 
 <circle cx="50" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
-<text x="30" y="55" font-size="18"> 59d... </text>
+<text x="30" y="55" font-size="18"> 9ac... </text>
 
 <circle cx="150" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
-<text x="130" y="55" font-size="18"> 7b3... </text>
+<text x="130" y="55" font-size="18"> 3ca... </text>
 
 <circle cx="250" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
-<text x="230" y="55" font-size="18"> 073... </text>
+<text x="230" y="55" font-size="18"> a16... </text>
+
+<circle cx="350" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
+<text x="330" y="55" font-size="18"> 13a... </text>
 
 <defs>
 <marker id='head' orient="auto" markerWidth='4' markerHeight='8' refX='0.2' refY='3'>
@@ -20,19 +23,20 @@
 
 <path marker-end='url(#head)' stroke-width='2' stroke='black' d='M80,50 L110,50' />
 <path marker-end='url(#head)' stroke-width='2' stroke='black' d='M180,50 L210,50' />
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M280,50 L310,50' />
 
-<rect x="210" y="-70" width="80" height="40" fill="khaki" stroke-width="2" stroke="black" />
-<text x="225" y="-45" font-size="18"> HEAD </text>
-<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M250,-30 L250,10' />
-
-<rect x="100" y="120" width="100" height="40" fill="khaki" stroke-width="2" stroke="black" />
-<text x="110" y="145" font-size="18"> version1 </text>
-<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M150,120 L150,90' />
+<rect x="310" y="-70" width="80" height="40" fill="khaki" stroke-width="2" stroke="black" />
+<text x="325" y="-45" font-size="18"> HEAD </text>
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M350,-30 L350,10' />
 
-<rect x="210" y="120" width="80" height="40" fill="orange" stroke-width="2" stroke="black" />
-<text x="220" y="145" font-size="18"> master </text>
+<rect x="200" y="120" width="100" height="40" fill="khaki" stroke-width="2" stroke="black" />
+<text x="210" y="145" font-size="18"> version1 </text>
 <path marker-end='url(#head)' stroke-width='2' stroke='black' d='M250,120 L250,90' />
 
+<rect x="310" y="120" width="80" height="40" fill="orange" stroke-width="2" stroke="black" />
+<text x="320" y="145" font-size="18"> master </text>
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M350,120 L350,90' />
+
 </g>
 
 </svg>