Comment puis-je garder ma branche à jour avec master avec git?

126

J'ai un correctif de bogue dans mon maître, et je veux aussi que ma branche obtienne ce correctif de bogue. Quelle gitcommande dois-je utiliser?

Nic Hubbard
la source

Réponses:

172

En supposant que vous êtes d'accord pour prendre tous les changements de master, ce que vous voulez est:

git checkout <my branch>

pour basculer l'arbre de travail sur votre branche; puis:

git merge master

pour fusionner toutes les modifications de master avec les vôtres.

John Doty
la source
5
Et cela ajoute simplement les changements de mon maître à ma branche, et laisse le maître seul, n'est-ce pas?
Nic Hubbard
3
@Nic - Cela apportera tous les commits de master, pas seulement la correction de bogue. Assurez-vous que c'est ce que vous voulez faire.
manojlds
12
@Nic - Correct, cela ne modifie pas le maître.
John Doty
16
Il peut être bon de recommander un "git checkout master; git pull" initial pour s'assurer que la branche master locale est à jour. Habituellement évident, mais ...
MikeW
En tant que raccourci de contrôle / fusion principal, pouvez-vous simplement faire un "git pull origin master" pour extraire le serveur maître / fusionner dans la branche locale extraite?
user1172173
66

Si votre succursale est uniquement locale et n'a pas été poussée vers le serveur, utilisez

git rebase master

Sinon, utilisez

git merge master
Chetan
la source
18
Parce qu'il modifie l'historique de validation et que vous ne voulez pas pousser l'historique de recherche modifié sur le serveur.
Chetan
1
Si vous utilisez un référentiel svn comme référentiel distant - via - git svnalors git rebase masterla voie à suivre est de conserver un historique linéaire, ce que svn comprend.
alondono
15

Vous pouvez utiliser le cherry-pick pour obtenir le (s) commit (s) de correction de bogue particulier (s)

$ git checkout branch
$ git cherry-pick bugfix
manojlds
la source
le cherry-pick ne fonctionnera-t-il que si le correctif était une branche qui a été fusionnée dans master?
Prasith Govin
1
Vous pouvez faire un tri sélectif, mais après avoir fusionné la branche dans master (lorsque la branche est prête), vous aurez le commit de correction de bogue deux fois dans l'historique.
Gauthier
0

Si vous voulez juste que le correctif de bogue soit intégré dans la branche, git cherry-pickle (s) commit (s) concerné (s).

Alan Haggai Alavi
la source