Слияние до определенного коммита
Я создал новую ветвь с именем newbranch
из ветки master
в git. Теперь я сделал некоторую работу и хочу объединить newbranch
в master
; однако я внес некоторые дополнительные изменения в newbranch
, и я хочу объединить newbranch
до четвертого от последнего коммита до master
.
Я использовал cherry-pick
, но он показывает сообщение для использования правильных параметров:
git checkout master
git cherry-pick ^^^^HEAD newbranch
Могу ли я использовать git merge
вместо этого?
git merge newbranch <commitid>
Ответы
Ответ 1
Конечно, находясь в ветке master
, все, что вам нужно сделать, это:
git merge <commit-id>
где commit-id
- хэш последнего коммита из newbranch
, который вы хотите получить в своей ветке master
.
Вы можете узнать больше о любой команде git, выполнив git help <command>
. В этом случае это git help merge
. И документы говорят, что последний аргумент для команды merge
<commit>...
, поэтому вы можете передать ссылку на любую фиксацию или даже на несколько коммитов. Хотя, я никогда не делал последнего сам.
Ответ 2
Чтобы очистить ветвление, вы можете сделать это:
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 закончится там, где он был объединен с мастером, и вы продолжите работу над newbranch2.
Ответ 3
Запустите приведенную ниже команду в текущую папку ветки, чтобы объединить эту <commit-id>
с текущей веткой, --no-commit
не делать новый коммит автоматически
git merge --no-commit <commit-id>
git merge --continue
можно запустить только после того, как слияние привело к конфликтам.
git merge --abort
Прервать текущий процесс разрешения конфликтов и попытаться восстановить состояние перед слиянием.