Объединить до определенного коммита - PullRequest
309 голосов
/ 22 ноября 2011

Я создал новую ветку с именем newbranch из ветви master в git.Теперь я проделал некоторую работу и хочу объединить newbranch в master;тем не менее, я внес некоторые дополнительные изменения в newbranch и хочу объединить newbranch до четвертого от последнего коммита до master.

Я использовал cherry-pick, но он показываетсообщение для использования правильных опций:

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

Могу ли я использовать вместо этого git merge?

git merge newbranch <commitid>

Ответы [ 2 ]

512 голосов
/ 22 ноября 2011

Конечно, находясь в master филиале, все, что вам нужно сделать, это:

git merge <commit-id>

где commit-id - это хэш последнего коммита из newbranch, который вы хотите получить в ветке master.

Вы можете узнать больше о любой команде git, выполнив git help <command>. В этом случае это git help merge. И в документах говорится, что последний аргумент для команды merge - <commit>..., так что вы можете передать ссылку на любой коммит или даже несколько коммитов. Впрочем, я никогда не делал последнее сам.

8 голосов
/ 06 декабря 2017

Чтобы сохранить ветвление в чистоте, вы можете сделать это:

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

Таким образом, newbranch закончится там, где он был объединен с master, и вы продолжите работать над newbranch2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...