Yesterday I cherry-picked two commits into my main branch, one of them caused merge conflicts and I resolved them, committed and pushed them to origin. Today I am attempting to pull from the server when I get the following error:

$ git pull
fatal: You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).
Please, commit your changes before you can merge.
$

Git status reads:

$ git status
# On branch main
# Your branch is behind 'origin/main' by 2 commits, and can be fast-forwarded.
#
$

I have tried the following to no avail:

$ git cherry-pick --continue
usage: git cherry-pick [options] <commit-ish>
$

Any idea on how I could resolve this? Thanks in advance!


Next time try git cherry-pick --abort, otherwise what you did should more or less work.


Solved with the following: rm .git/CHERRY_PICK_HEAD I realize this is dangerous as this doesn't guarantee internal consistency within git, but no issues for me so far...


Since my previous answer from 2014, the proper command nowadays (2018) is git cherry-pick --quit.
And before Git 2.19 (Q3 2018), "git cherry-pick --quit" failed to remove CHERRY_PICK_HEAD even though we won't be in a cherry-pick session after it returns, which has been corrected.

See commit 3e7dd99 (16 Aug 2018) by Nguyễn Thái Ngọc Duy (pclouds).
(Merged by Junio C Hamano -- gitster -- in commit 39e415c, 20 Aug 2018)

cherry-pick: fix --quit not deleting CHERRY_PICK_HEAD

--quit is supposed to be --abort but without restoring HEAD.
Leaving CHERRY_PICK_HEAD behind could make other commands mistake that cherry-pick is still ongoing (e.g. "git commit --amend" will refuse to work). Clean it too.

For --abort, this job of deleting CHERRY_PICK_HEAD is on "git reset" so we don't need to do anything else. But let's add extra checks in --abort tests to confirm.