Как заключить Git Cherry-Pick?
вчера я выбрал два коммита в своей основной ветви, один из них вызвал конфликты слияния, и я разрешил их, совершил и подтолкнул их к происхождению. Сегодня я пытаюсь вытащить с сервера, когда получаю следующую ошибку:
$ git pull
fatal: You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).
Please, commit your changes before you can merge.
$
состояние Git читает:
$ git status
# On branch main
# Your branch is behind 'origin/main' by 2 commits, and can be fast-forwarded.
#
$
Я пробовал следующее безрезультатно:
$ git cherry-pick --continue
usage: git cherry-pick [options] <commit-ish>
$
есть идеи, как я могу это решить? Заранее спасибо!
4 ответов
в следующий раз попробовать git cherry-pick --abort
, иначе то, что вы сделали, должно более или менее работать.
решено следующим образом:rm .git/CHERRY_PICK_HEAD
Я понимаю, что это опасно, так как это не гарантирует внутреннюю согласованность в git, но пока никаких проблем для меня...
если git cherry-pick --continue
не работает, это означает, что git слишком стар: эта опция была введена для git 1.7.8 (Dec. 2011) в совершить 5a5d80f
он работает, отбрасывая первую инструкцию .git / sequencer / todo и выполнение оставшихся вишневых выборов, перечисленных там, с параметрами (подумайте"
-s
" и "-X
") из начальной команды, указанной в ".git/sequencer/opts
".
в эти дни (2014), это будет команда для использования, когда вы видите "You have not concluded your cherry-pick
".
посмотреть совершить 3e7dd99 (16 Авг 2018) by Nguyễn Thái Ng Duc Duy (pclouds
).
(слитый Junio C Hamano -- gitster
-- in совершить 39e415c, 20 авг 2018)
cherry-pick: fix --quit не удалять CHERRY_PICK_HEAD
--quit
должен быть--abort
но без восстановленияHEAD
.
УходимCHERRY_PICK_HEAD
позади может сделать другие команды ошибка, чтоcherry-pick
все еще продолжается (например,"git commit --amend
" откажется работать). очистить его слишком.на
--abort
эта работа на удаленииCHERRY_PICK_HEAD
на "git reset
" так мы не нужно делать ничего другого. Но давайте добавим дополнительные проверки в--abort
тесты для подтверждения.