web-dev-qa-db-fra.com

Fusion de plusieurs branches avec git

J'ai 2 branches locales appelées "develop" et "master"; ils sont similaires. Sur le serveur de mon entreprise, il y a un dépôt (production) "principal" et plusieurs branches qui ont été faites par d'autres développeurs:

 $ git branch -a 
 * développer 
 maître 
 télécommandes/Origine/TETE -> Origine/maître 
 télécommandes/Origine/certains-test 
 télécommandes/Origine/fonction1 
 télécommandes/Origine/fonction2 
 télécommandes/Origine/maître 

Comment puis-je fusionner remotes/Origin/feature1 et remotes/Origin/feature2 dans ma branche "master" locale, copier tout cela dans "develop" et commencer à travailler avec le code réel dans ma branche "develop"?

27
Chvanikoff
  1. git checkout master
  2. git pull Origin feature1 feature2
  3. git checkout develop
  4. git pull . master (ou peut-être git rebase ./master)

La première commande change votre branche actuelle en master.

La deuxième commande extrait les modifications de la télécommande feature1 et feature2 branches. Il s'agit d'une fusion "octopus" car elle fusionne plus de 2 branches. Vous pouvez également effectuer deux fusions normales si vous préférez.

La troisième commande vous ramène à votre branche develop.

La quatrième commande extrait les modifications de master local à develop.

J'espère que cela pourra aider.

EDIT: notez que git pull fera automatiquement un fetch donc vous n'avez pas besoin de le faire manuellement. C'est à peu près équivalent à git fetch suivi par git merge.

37
Cameron Skinner

Je voudrais juste "récupérer" tout d'Origin:

git fetch Origin

maintenant que c'est dans votre repo vous pouvez fusionner les branches en master:

git checkout master

git merge Origin/feature1 

git merge Origin/feature2 

maintenant, vous pouvez fusionner le maître en développant

git checkout develop
git merge master 

si vous allez vous engager à nouveau dans Origin, je configurerais une branche de suivi locale afin que vous puissiez avoir un accès local et pousser directement vers Origin:

git branch --track Origin/feature1 feature1
9
Brandon