264 votes

Comment fusionner maître à distance à l’antenne locale

J’ai une branche locale d’un projet (« configUpdate ») que j’ai bifurqué de quelqu'un d’autre projet et j’ai fait une charge de changements à ce sujet et j’aimerais fusionner les modifications qu’ils ont fait dans ma branche locale.

J'ai essayé

mais il n’a pas saisi les derniers changements - comment est-ce que je peux combiner les deux ? (également des points bonus que j’ai fait avec la `` commande ?)

395voto

Joey Adams Points 13049

Comment à ce sujet (en supposant que vous êtes actuellement sur la branche configUpdate):

git fetch
git rebase origin/master

En un mot:

  • git merge branchname prend de nouveaux commits de la branche branchname, et les ajoute à la branche courante. Si nécessaire, il ajoute automatiquement une "Fusion" s'engager sur le dessus.

  • git rebase branchname prend de nouveaux commits de la branche branchname, et les insère "dans" vos modifications. Plus précisément, il modifie l'histoire de la branche courante, telle qu'elle est basée sur le bout de branchname, avec toutes les modifications que vous avez effectuées sur le dessus de cela.

  • git pull est fondamentalement la même, en git fetch; git merge origin/master.

  • git pull --rebase est fondamentalement la même, en git fetch; git rebase origin/master.

Alors, pourquoi voudriez-vous d'utiliser git pull --rebase plutôt que d' git pull? Voici un exemple simple:

  • Vous commencez à travailler sur une nouvelle fonctionnalité.

  • Par le temps que vous êtes prêt à pousser vos modifications, plusieurs commits ont été poussé par d'autres développeurs.

  • Si vous git pull (qui utilise de fusion), vos modifications seront enterrés par la nouvelle s'engage, en outre créé automatiquement fusionner les commettre.

  • Si vous git pull --rebase au lieu de cela, git va vite vers l'avant de votre master en amont, puis appliquer vos modifications sur le dessus.

86voto

Martyn Points 5662

J’ai découvert que c’était :

41voto

Serge Seletskyy Points 1859

Passez à votre succursale locale

> git checkout configUpdate

Fusion maître de votre branche

> git rebase maître configUpdate

Dans le cas où vous disposez de tous les conflits, de les corriger et pour chaque fichier en conflit de faire la commande

> git add [path_to_file/conflicted_file] (par exemple, la commande git add app/assets/javascripts/test.js)

Continuer rebase

> git rebase --continue

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X