it-swarm.com.ru

Объединить до определенного коммита

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

Я использовал cherry-pick, но он показывает сообщение, чтобы использовать правильные параметры:

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

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

git merge newbranch <commitid>
302
Dau

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

git merge <commit-id>

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

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

508
KL-7

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

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.

7
tkruse