Parcourir la source

branches (pas fini)

Julien Dehos il y a 8 ans
Parent
commit
8c34a82373
10 fichiers modifiés avec 107 ajouts et 38 suppressions
  1. 37 20
      branches.md
  2. 55 0
      branches_01.svg
  3. BIN
      branches_12.png
  4. 5 2
      depot_distant.md
  5. BIN
      depot_distant_15.png
  6. BIN
      forks_02.png
  7. BIN
      forks_03.png
  8. BIN
      forks_07.png
  9. BIN
      forks_j10.png
  10. 10 16
      index.md

+ 37 - 20
branches.md

@@ -8,50 +8,67 @@ output:
 
 # Branches 
 
-TODO
+Lorsque l'on travaille sur un dépôt, on réalise des commits successifs. Git
+permet également, à partir d'un commit donné, de réaliser plusieurs branches de
+commits en parallèle.  Ceci permet de faire une série de modifications sans
+risquer de perturber la branche principale du projet, utilisée par tout le
+monde.  Une branche peut ensuite être fusionnée dans une autre, par exemple
+dans la branche principale, pour y intégrer ses modifications une fois
+abouties.  Si les modifications n'ont pas abouties, la branche peut être
+abandonnée ou même supprimée.
+
+L'utilisation des branches est très naturelle avec git et permet d'organiser le
+déroulement du projet. Souvent, on utilise une branche master qui "doit
+toujours fonctionner"; pour chaque fonctionnalité à ajouter, on dérive une
+nouvelle branche que l'on fusionne ensuite dans le master une fois la
+fonctionnalité réalisée (ou partiellement réalisée) et testée.
+
+![](branches_01.svg)
 
 ## Afficher les branches 
+![](branches_01.png)
+
 git log --graph --all --oneline --decorate
 
 ## Créer une nouvelle branche locale
+![](branches_02.png)
 
 ## Changer de branche
+![](branches_03.png)
+
+![](branches_05.png)
 
 ## Fusionner des branches
 
+![](branches_06.png)
+![](branches_08.png)
+![](branches_09.png)
+![](branches_10.png)
+
 ## Envoyer une branche sur un dépôt distant
+![](branches_11.png)
+![](branches_12.png)
 
 ## Afficher les branches distantes
+![](branches_15.png)
 
 ## Terminer une branche locale
+![](branches_13.png)
 
 ## Terminer une branche distante
+![](branches_16.png)
 
 ## Supprimer un commit déjà pushé (DANGER !!!)
 git reset --hard e6c8e8e
 git push origin HEAD:master -f
 git reset --hard e6c8e8e
 
-![](branches_01.png)
-![](branches_02.png)
-![](branches_03.png)
-![](branches_04.png)
-![](branches_05.png)
-![](branches_06.png)
-![](branches_07.png)
-![](branches_08.png)
-![](branches_09.png)
-![](branches_10.png)
-![](branches_11.png)
-![](branches_12.png)
-![](branches_13.png)
-![](branches_14.png)
-![](branches_15.png)
-![](branches_16.png)
-![](branches_17.png)
 ![](branches_18.png)
-![](branches_19.png)
-![](branches_20.png)
+
+
+TODO : supprimer
+
+![](branches_17.png)
 ![](branches_21.png)
 
 ## Résumé et méthode de travail

+ 55 - 0
branches_01.svg

@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="700" height="450" >
+
+<g transform="translate(0,180)">
+
+<defs>
+<marker id='head' orient="auto" markerWidth='4' markerHeight='8' refX='0.2' refY='3'>
+<path d='M0,0 V6 L3,3 Z' />
+</marker>
+</defs>
+
+<circle cx="50" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
+<circle cx="150" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
+<circle cx="250" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
+<circle cx="350" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
+<circle cx="450" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
+<circle cx="550" cy="50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
+<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' />
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M480,50 L510,50' />
+
+<circle cx="250" cy="-50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
+<circle cx="350" cy="-50" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
+<path marker-end='url(#head)' stroke-width='2' fill='none' stroke='black' 
+    d=' M150,20 C150,-50 210,-50 210,-50 ' />
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M280,-50 L310,-50' />
+<path marker-end='url(#head)' stroke-width='2' fill='none' stroke='black' 
+    d=' M380,-50 C380,-50 450,-50 450,10 ' />
+
+<circle cx="250" cy="150" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
+<circle cx="550" cy="150" r="30" stroke="black" stroke-width="2" fill="lightgreen"/>
+<path marker-end='url(#head)' stroke-width='2' fill='none' stroke='black' 
+    d=' M150,80 C150,150 210,150 210,150 ' />
+<path marker-end='url(#head)' stroke-width='2' fill='none' stroke='black' 
+    d=' M280,150 C280,150 350,150 350,90 ' />
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M280,150 L510,150' />
+
+<rect x="510" y="-70" width="80" height="40" fill="orange" stroke-width="2" stroke="black" />
+<text x="520" y="-45" font-size="18"> master </text>
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M550,-30 L550,10' />
+
+<rect x="280" y="-170" width="170" height="40" fill="khaki" stroke-width="2" stroke="black" />
+<text x="290" y="-145" font-size="18"> fonctionnalite_1 </text>
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M350,-130 L350,-90' />
+
+<rect x="460" y="220" width="170" height="40" fill="khaki" stroke-width="2" stroke="black" />
+<text x="470" y="245" font-size="18"> fonctionnalite_2 </text>
+<path marker-end='url(#head)' stroke-width='2' stroke='black' d='M550,220 L550,190' />
+
+</g>
+
+</svg>
+

BIN
branches_12.png


+ 5 - 2
depot_distant.md

@@ -32,7 +32,7 @@ commits, dépôts actifs...) :
 
 ## Créer un dépôt sur un serveur git
 
-Pour créer un nouveau dépôt distant, allez sur la page du serveur gogs et
+Pour créer un nouveau dépôt distant, allez sur le site du serveur gogs et
 cliquez "New Repository".
 
 ![](depot_distant_03.png)
@@ -48,7 +48,10 @@ section suivante).
 
 ![](depot_distant_05.png)
 
-TODO : collaboration
+Le site du serveur gogs vous permet de configurer différents paramètres
+concernant votre projet. Il permet notamment d'indiquer les collègues qui
+participent au projet et qui peuvent donc cloner et modifier le dépôt (cliquez
+"settings" puis "collaboration" puis entrez et ajoutez le login).
 
 ![](depot_distant_15.png)
 

BIN
depot_distant_15.png


BIN
forks_02.png


BIN
forks_03.png


BIN
forks_07.png


BIN
forks_j10.png


+ 10 - 16
index.md

@@ -74,26 +74,20 @@ On peut ensuite rassembler ces modifications en fusionnant les branches :
 
 ## Notion de dépôt (repository)
 
-On appelle dépôt l'ensemble des fichiers de notre "projet git", c'est-à-dire
-l'historique des commits.
+On appelle dépôt tout l'historique des fichiers et des modifications de notre
+"projet git", c'est-à-dire l'ensemble des commits.  
 
-Un dépôt peut être dupliqué sur différentes machines, pour synchroniser les
-données ou pour travailler en équipe. 
-
-Dans l'ancien temps des années 2000, on avait un dépôt principal distant que
-l'on synchronisait ou modifiait via des copies locales partielles (subversion,
-CVS...) :
-
-<img src="concepts_depots_svn.svg" style="width:700px">
-
-Aujourd'hui, on utilise plutôt un système de dépôts décentralisés (git,
-mercurial...).  Avec ce système, tous les dépôts sont identiques et peuvent se
-synchroniser entre eux :
+Un dépôt peut être dupliqué et synchronisé sur différentes machines, ce qui
+permet de partager un projet et pouvoir travailler à plusieurs.  Git est un
+système décentralisé, c'est-à-dire que chaque dépôt correspondant au projet
+contient toutes les informations du projet. Ainsi, chaque dépôt peut se
+synchroniser avec n'importe quel autre dépôt du projet.
 
 <img src="concepts_depots_git.svg" style="width:700px">
 
-Généralement, on garde tout de même un dépôt sur un serveur distant accessible
-en permanence (serveur gogs, github...).
+Pour simplifier le déroulement du projet, on met généralement un dépôt sur un
+serveur distant et on synchronise les autres dépôts via ce dépôt distant. C'est
+le mode de fonctionnement du serveur gogs du SCOSI, de github...
 
 ## Références