2013-05-12 4 views
0

J'ai passé la dernière demi-heure à lire merge vs rebase à Stack Overflow. Comme je comprends les choses, rebase est bon car il maintient linéarité, mais peut être source de confusion pour les collaborateurs, car il modifie l'histoire.Git-fetch + fusionne sur la branche de fonctionnalité, rebase sur le maître

Alors, serait-il juste de déduire que

  1. Sur la branche de fonction, fetch + fusion utiliser pour maintenir l'histoire et éviter la confusion entre collaborateurs. Le fouillis n'a pas d'importance car il sera supprimé après avoir poussé à maîtriser quand même.

  2. Sur la branche principale, utilisez rebase pour éviter les échos parasites. La modification de l'historique n'a pas d'importance car la branche de fonctionnalité est rejetée en tant que validation unique.

+0

Il y a un blogpost cool qui vous donne un guide pour savoir quand utiliser: http://mislav.uniqpath.com/2013/02/merge-vs-rebase/ –

Répondre

0

Vous rebasage pendant que vous êtes sur la Topic Branch

# integrate the latest upstream changes into your "master" 
git checkout master 
git pull 

# make sure that you're on your topic branch 
git checkout my_topic 

# do the rebase 
git rebase master 

Puis lorsque vous êtes prêt, vous pouvez fusionner la branche de sujet en maître

git checkout master 
git merge my_topic 
1

Cela dépend principalement de votre flux de travail et quel rôle vos branches jouent dans ce flux de travail.

En règle générale:

  • rebasage est bien aussi longtemps que vous ne l'avez pas oui publish (à savoir push) vous commits, encore, ou si vous n'êtes pas sûr d'autre est intéressé par votre succursale.
  • Une fusion explicite est bonne lors de l'intégration de certaines branches dans une autre branche. Dans ce cas, vous voulez un commit de fusion descriptif.

En réalité, j'utilise presque toujours git pull --rebase. La partie importante est mise en amont de la branche à distance correcte, à savoir

  • la branche vous branche à partir avant votre travail poussé une branche de fonctionnalité et
  • votre branche de fonction à distance par la suite.
Questions connexes