You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: book/03-git-branching/sections/basic-branching-and-merging.asc
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -76,15 +76,15 @@ C'est un point important à garder en mémoire : quand vous changez de branche,
76
76
Il ajoute, retire et modifie automatiquement les fichiers de manière à s'assurer que votre copie de travail soit identique à ce qu'elle était lors de votre dernier _commit_ sur cette branche.
77
77
78
78
Vous avez ensuite un correctif à faire.
79
-
Pour ce faire, créons une branche `correctif` sur laquelle travailler jusqu'à résolution du problème :
79
+
Pour ce faire, créons une branche `hotfix` sur laquelle travailler jusqu'à résolution du problème :
80
80
81
81
[source,console]
82
82
----
83
-
$ git checkout -b correctif
84
-
Switched to a new branch 'correctif'
83
+
$ git checkout -b hotfix
84
+
Switched to a new branch 'hotfix'
85
85
$ vim index.html
86
86
$ git commit -a -m "correction de l'adresse email incorrecte"
87
-
[correctif 1fb7853] "correction de l'adresse email incorrecte"
87
+
[hotfix 1fb7853] "correction de l'adresse email incorrecte"
88
88
1 file changed, 2 insertions(+)
89
89
----
90
90
@@ -97,7 +97,7 @@ Vous réalisez ceci au moyen de la commande `git merge` :
97
97
[source,console]
98
98
----
99
99
$ git checkout master
100
-
$ git merge correctif
100
+
$ git merge hotfix
101
101
Updating f42c576..3a0874c
102
102
Fast-forward
103
103
index.html | 2 ++
@@ -110,17 +110,17 @@ Autrement dit, lorsque l'on cherche à fusionner un _commit_ qui peut être atte
110
110
111
111
Votre modification est maintenant dans l'instantané (_snapshot_) du _commit_ pointé par la branche `master` et vous pouvez déployer votre correctif.
112
112
113
-
.Avancement du pointeur de `master` sur `correctif`
114
-
image::images/basic-branching-5.png[Avancement du pointeur de `master` sur `correctif`]
113
+
.Avancement du pointeur de `master` sur `hotfix`
114
+
image::images/basic-branching-5.png[Avancement du pointeur de `master` sur `hotfix`]
115
115
116
116
Après le déploiement de votre correctif super-important, vous voilà prêt à retourner travailler sur le sujet qui vous occupait avant l'interruption.
117
-
Cependant, vous allez avant cela effacer la branche `correctif` dont vous n'avez plus besoin puisque la branche `master` pointe au même endroit.
117
+
Cependant, vous allez avant cela effacer la branche `hotfix` dont vous n'avez plus besoin puisque la branche `master` pointe au même endroit.
118
118
Vous pouvez l'effacer avec l'option `-d` de la commande `git branch` :
119
119
120
120
[source,console]
121
121
----
122
-
$ git branch -d correctif
123
-
Deleted branch correctif (3a0874c).
122
+
$ git branch -d hotfix
123
+
Deleted branch hotfix (3a0874c).
124
124
----
125
125
126
126
Maintenant, vous pouvez retourner travailler sur la branche qui contient vos travaux en cours pour le problème #53 :
@@ -139,15 +139,15 @@ $ git commit -a -m 'Nouveau pied de page terminé [issue 53]'
139
139
.Le travail continue sur `iss53`
140
140
image::images/basic-branching-6.png[Le travail continue sur `iss53`]
141
141
142
-
Il est utile de noter que le travail réalisé dans la branche `correctif` n'est pas contenu dans les fichiers de la branche `iss53`.
142
+
Il est utile de noter que le travail réalisé dans la branche `hotfix` n'est pas contenu dans les fichiers de la branche `iss53`.
143
143
Si vous avez besoin de les y rapatrier, vous pouvez fusionner la branche `master` dans la branche `iss53` en lançant la commande `git merge master`, ou vous pouvez retarder l'intégration de ces modifications jusqu'à ce que vous décidiez plus tard de rapatrier la branche `iss53` dans `master`.
144
144
145
145
146
146
[[s_basic_merging]]
147
147
==== Fusions (_Merges_)
148
148
149
149
Supposons que vous ayez décidé que le travail sur le problème #53 était terminé et prêt à être fusionné dans la branche `master`.
150
-
Pour ce faire, vous allez fusionner votre branche `iss53` de la même manière que vous l'avez fait plus tôt pour la branche `correctif`.
150
+
Pour ce faire, vous allez fusionner votre branche `iss53` de la même manière que vous l'avez fait plus tôt pour la branche `hotfix`.
151
151
Tout ce que vous avez à faire est d'extraire la branche dans laquelle vous souhaitez fusionner et lancer la commande `git merge`:
152
152
153
153
[source,console]
@@ -160,7 +160,7 @@ README | 1 +
160
160
1 file changed, 1 insertion(+)
161
161
----
162
162
163
-
Le comportement semble légèrement différent de celui observé pour la fusion précédente de la branche `correctif`.
163
+
Le comportement semble légèrement différent de celui observé pour la fusion précédente de la branche `hotfix`.
164
164
Dans ce cas, à un certain moment, l'historique de développement a divergé.
165
165
Comme le _commit_ sur la branche sur laquelle vous vous trouvez n'est plus un ancêtre direct de la branche que vous cherchez à fusionner, Git doit effectuer quelques actions.
166
166
Dans ce cas, Git réalise une simple fusion à trois sources (_three-way merge_), en utilisant les deux instantanés pointés par les sommets des branches ainsi que leur plus proche ancêtre commun.
@@ -188,7 +188,7 @@ $ git branch -d iss53
188
188
(((fusionner, conflits)))
189
189
Quelques fois, le processus ci-dessus ne se déroule pas aussi bien.
190
190
Si vous avez modifié différemment la même partie du même fichier dans les deux branches que vous souhaitez fusionner, Git ne sera pas capable de réaliser proprement la fusion.
191
-
Si votre résolution du problème #53 a modifié la même section de fichier que le `correctif`, vous obtiendrez un conflit qui ressemblera à ceci :
191
+
Si votre résolution du problème #53 a modifié la même section de fichier que le `hotfix`, vous obtiendrez un conflit qui ressemblera à ceci :
Copy file name to clipboardExpand all lines: book/03-git-branching/sections/branch-management.asc
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ Si vous la lancez sans argument, vous obtenez la liste des branches courantes :
12
12
$ git branch
13
13
iss53
14
14
* master
15
-
test
15
+
testing
16
16
----
17
17
18
18
Notez le caractère `*` qui préfixe la branche `master` : il indique la branche courante (c'est-à-dire la branche sur laquelle le pointeur `HEAD` se situe).
@@ -24,7 +24,7 @@ Pour visualiser la liste des derniers _commits_ sur chaque branche, vous pouvez
24
24
$ git branch -v
25
25
iss53 93b412c fix javascript issue
26
26
* master 7a98805 Merge branch 'iss53'
27
-
test 782fd34 add scott to the author list in the readmes
27
+
testing 782fd34 add scott to the author list in the readmes
28
28
----
29
29
30
30
`--merged` et `--no-merged` sont des options très utiles qui permettent de filtrer les branches de cette liste selon que vous les avez ou ne les avez pas encore fusionnées avec la branche courante.
@@ -45,17 +45,17 @@ Pour visualiser les branches qui contiennent des travaux qui n'ont pas encore é
45
45
[source,console]
46
46
----
47
47
$ git branch --no-merged
48
-
test
48
+
testing
49
49
----
50
50
51
51
Ceci affiche votre autre branche.
52
52
Comme elle contient des modifications qui n'ont pas encore été intégrées, essayer de les supprimer par la commande `git branch -d` se solde par un échec :
53
53
54
54
[source,console]
55
55
----
56
-
$ git branch -d test
57
-
error: The branch 'test' is not fully merged.
58
-
If you are sure you want to delete it, run 'git branch -D test'.
56
+
$ git branch -d testing
57
+
error: The branch 'testing' is not fully merged.
58
+
If you are sure you want to delete it, run 'git branch -D testing'.
59
59
----
60
60
61
61
Si vous souhaitez réellement supprimer cette branche et perdre ainsi le travail réalisé, vous pouvez tout de même forcer la suppression avec l'option `-D`, comme l'indique le message.
Copy file name to clipboardExpand all lines: book/03-git-branching/sections/nutshell.asc
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -117,7 +117,7 @@ $ git commit -a -m 'made a change'
117
117
.La branche HEAD avance à chaque _commit_
118
118
image::images/advance-testing.png[La branche HEAD avance à chaque _commit_]
119
119
120
-
C'est intéressant parce qu'à présent, votre branche `test` a avancé tandis que la branche `master` pointe toujours sur le _commit_ sur lequel vous étiez lorsque vous avez lancé la commande `git checkout` pour changer de branche.
120
+
C'est intéressant parce qu'à présent, votre branche `testing` a avancé tandis que la branche `master` pointe toujours sur le _commit_ sur lequel vous étiez lorsque vous avez lancé la commande `git checkout` pour changer de branche.
121
121
Retournons sur la branche `master` :
122
122
123
123
[source,console]
@@ -143,7 +143,7 @@ image::images/checkout-master.png[HEAD est déplacé lors d'un _checkout_]
143
143
Cette commande a réalisé deux actions.
144
144
Elle a remis le pointeur `HEAD` sur la branche `master` et elle a replacé les fichiers de votre répertoire de travail dans l'état du _snapshot_ pointé par `master`.
145
145
Cela signifie aussi que les modifications que vous réalisez à partir de ce point divergeront de l'ancienne version du projet.
146
-
Cette commande annule les modifications réalisées dans la branche `test` pour vous permettre de repartir dans une autre direction.
146
+
Cette commande annule les modifications réalisées dans la branche `testing` pour vous permettre de repartir dans une autre direction.
147
147
148
148
[NOTE]
149
149
.Changer de branche modifie les fichiers dans votre répertoire de travail
Copy file name to clipboardExpand all lines: book/03-git-branching/sections/rebasing.asc
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ Dans cet exemple, vous lanceriez les commandes suivantes :
26
26
27
27
[source,console]
28
28
----
29
-
$ git checkout experience
29
+
$ git checkout experiment
30
30
$ git rebase master
31
31
First, rewinding head to replay your work on top of it...
32
32
Applying: added staged command
@@ -63,9 +63,9 @@ Rebaser rejoue les modifications d'une ligne de _commits_ sur une autre dans l'o
63
63
64
64
Vous pouvez aussi faire rejouer votre rebasage sur autre chose qu'une branche.
65
65
Prenez un historique tel que <<ch03-git-branching#rbdiag_e>> par exemple.
66
-
Vous avez créé une branche thématique (`serveur`) pour ajouter des fonctionnalités côté serveur à votre projet et avez réalisé un _commit_.
66
+
Vous avez créé une branche thématique (`server`) pour ajouter des fonctionnalités côté serveur à votre projet et avez réalisé un _commit_.
67
67
Ensuite, vous avez créé une branche pour ajouter des modifications côté client (`client`) et avez validé plusieurs fois.
68
-
Finalement, vous avez rebasculé sur la branche `serveur` et avez réalisé quelques _commits_ supplémentaires.
68
+
Finalement, vous avez rebasculé sur la branche `server` et avez réalisé quelques _commits_ supplémentaires.
69
69
70
70
71
71
[[rbdiag_e]]
@@ -77,10 +77,10 @@ Vous pouvez récupérer les modifications du côté client qui ne sont pas sur l
77
77
78
78
[source,console]
79
79
----
80
-
$ git rebase --onto master serveur client
80
+
$ git rebase --onto master server client
81
81
----
82
82
83
-
Cela signifie en substance "Extraire la branche client, déterminer les patchs depuis l'ancêtre commun des branches `client` et `serveur` puis les rejouer sur `master` ".
83
+
Cela signifie en substance "Extraire la branche client, déterminer les patchs depuis l'ancêtre commun des branches `client` et `server` puis les rejouer sur `master` ".
84
84
C'est assez complexe, mais le résultat est assez impressionnant.
85
85
86
86
.Rebaser deux branches thématiques l'une sur l'autre
@@ -98,34 +98,34 @@ $ git merge client
98
98
.Avance rapide sur votre branche `master` pour inclure les modifications de la branche client
99
99
image::images/interesting-rebase-3.png[Avance rapide sur votre branche `master` pour inclure les modifications de la branche client]
100
100
101
-
Supposons que vous décidiez de tirer (_pull_) votre branche `serveur` aussi.
102
-
Vous pouvez rebaser la branche `serveur` sur la branche `master` sans avoir à l'extraire avant en utilisant `git rebase [branchedebase] [branchethematique]` — qui extrait la branche thématique (dans notre cas, `serveur`) pour vous et la rejoue sur la branche de base (`master`) :
101
+
Supposons que vous décidiez de tirer (_pull_) votre branche `server` aussi.
102
+
Vous pouvez rebaser la branche `server` sur la branche `master` sans avoir à l'extraire avant en utilisant `git rebase [branchedebase] [branchethematique]` — qui extrait la branche thématique (dans notre cas, `server`) pour vous et la rejoue sur la branche de base (`master`) :
103
103
104
104
[source,console]
105
105
----
106
-
$ git rebase master serveur
106
+
$ git rebase master server
107
107
----
108
108
109
-
Cette commande rejoue les modifications de `serveur` sur le sommet de la branche `master`, comme indiqué dans <<ch03-git-branching#rbdiag_h>>.
109
+
Cette commande rejoue les modifications de `server` sur le sommet de la branche `master`, comme indiqué dans <<ch03-git-branching#rbdiag_h>>.
110
110
111
111
[[rbdiag_h]]
112
-
.Rebasage de la branche serveur sur le sommet de la branche `master`
113
-
image::images/interesting-rebase-4.png[Rebasage de la branche serveur sur le sommet de la branche `master`]
112
+
.Rebasage de la branche server sur le sommet de la branche `master`
113
+
image::images/interesting-rebase-4.png[Rebasage de la branche server sur le sommet de la branche `master`]
114
114
115
115
Vous pouvez ensuite faire une avance rapide sur la branche de base (`master`) :
116
116
117
117
[source,console]
118
118
----
119
119
$ git checkout master
120
-
$ git merge serveur
120
+
$ git merge server
121
121
----
122
122
123
-
Vous pouvez effacer les branches `client` et `serveur` une fois que tout le travail est intégré et que vous n'en avez plus besoin, éliminant tout l'historique de ce processus, comme visible sur <<ch03-git-branching#rbdiag_i>> :
123
+
Vous pouvez effacer les branches `client` et `server` une fois que tout le travail est intégré et que vous n'en avez plus besoin, éliminant tout l'historique de ce processus, comme visible sur <<ch03-git-branching#rbdiag_i>> :
124
124
125
125
[source,console]
126
126
----
127
127
$ git branch -d client
128
-
$ git branch -d serveur
128
+
$ git branch -d server
129
129
----
130
130
131
131
[[rbdiag_i]]
@@ -190,12 +190,12 @@ Ceci est appelé un "identifiant de patch" (_patch-id_).
190
190
191
191
Si vous tirez des travaux qui ont été réécrits et les rebasez au-dessus des nouveaux _commits_ de votre collègue, Git peut souvent déterminer ceux qui sont uniquement les vôtres et les réappliquer au sommet de votre nouvelle branche.
192
192
193
-
Par exemple, dans le scénario précédent, si au lieu de fusionner quand nous étions à l'étape <<ch03-git-branching#s_pre_merge_rebase_work>> nous exécutons la commande `git rebase equipe1/master`, Git va :
193
+
Par exemple, dans le scénario précédent, si au lieu de fusionner quand nous étions à l'étape <<ch03-git-branching#s_pre_merge_rebase_work>> nous exécutons la commande `git rebase teamone/master`, Git va :
194
194
195
195
* Déterminer quels travaux sont uniques à notre branche (C2, C3, C4, C6, C7)
196
196
* Déterminer ceux qui ne sont pas des _commits_ de fusion (C2, C3, C4)
197
197
* Déterminer ceux qui n'ont pas été réécrits dans la branche de destination (uniquement C2 et C3 puisque C4 est le même _patch_ que C4')
198
-
* Appliquer ces _commits_ au sommet de `equipe1/master`
198
+
* Appliquer ces _commits_ au sommet de `teamone/master`
199
199
200
200
Ainsi, au lieu du résultat que nous avons observé au chapitre <<ch03-git-branching#s_merge_rebase_work>>, nous aurions pu finir avec quelque chose qui ressemblerait davantage à <<ch03-git-branching#s_rebase_rebase_work>>.
0 commit comments