web-dev-qa-db-fra.com

Fusionner jusqu'à un commit spécifique

J'ai créé une nouvelle branche nommée newbranch à partir de la branche master de git. Maintenant, j'ai fait quelques travaux et je veux fusionner newbranch à master; Cependant, j'ai apporté quelques modifications supplémentaires à newbranch et je souhaite fusionner newbranch jusqu'au quatrième commit à partir du dernier, jusqu'à master.

J'ai utilisé cherry-pick mais il montre le message pour utiliser les bonnes options:

git checkout master    
git cherry-pick ^^^^HEAD newbranch

Puis-je utiliser git merge pour le faire à la place?

git merge newbranch <commitid>
317
Dau

Bien sûr, être dans la branche master, tout ce que vous avez à faire est:

git merge <commit-id>

commit-id est le hachage du dernier commit de newbranch que vous voulez obtenir dans votre branche master.

Vous pouvez en savoir plus sur n'importe quelle commande git en faisant git help <command>. Dans ce cas, il s'agit de git help merge. Et les docs disent que le dernier argument de la commande merge est <commit>..., de sorte que vous pouvez passer une référence à toute validation, voire à plusieurs validations. Bien que je ne l'ai jamais fait moi-même.

521
KL-7

Pour garder la ramification propre, vous pouvez faire ceci:

git checkout newbranch
git branch newbranch2
git reset --hard <commit Id> # the commit at which you want to merge
git checkout master
git merge newbranch
git checkout newbranch2

Ainsi, newbranch se terminera là où il a été fusionné avec master et vous continuerez à travailler sur newbranch2.

8
tkruse

Exécutez la commande ci-dessous dans le dossier de la branche en cours pour fusionner de ce <commit-id> à la branche actuelle, --no-commit ne faites pas une nouvelle validation automatiquement.

git merge --no-commit <commit-id>

git merge --continue ne peut être exécuté que lorsque la fusion a donné lieu à des conflits.

git merge --abort Abandonnez le processus de résolution de conflit en cours et essayez de reconstruire l'état avant fusion.

0
ElasticCode