70

昨日、メインブランチに2つのコミットを選択しましたが、そのうちの1つがマージの競合を引き起こし、それらを解決し、コミットして元の場所にプッシュしました。今日、次のエラーが発生したときにサーバーからプルしようとしています。

$ 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

5 に答える 5

158

次回は試してみてくださいgit cherry-pick --abort。そうしないと、多かれ少なかれうまくいくはずです。

于 2012-09-13T13:52:57.410 に答える
16

次のように解決しました:rm .git/CHERRY_PICK_HEADこれはgit内の内部一貫性を保証しないため、これは危険であると認識していますが、これまでのところ問題はありません...

于 2012-09-13T01:08:43.500 に答える
10

2014年の前回の回答以来、現在(2018年)の適切なコマンドはですgit cherry-pick --quit
また、Git 2.19(2018年第3四半期)以前は、「 」が戻った後、チェリーピックセッションに参加しなくてもgit cherry-pick --quit削除できませんでした。これは修正されています。CHERRY_PICK_HEAD

NguyễnTháiNgọcDuy ()によるcommit 3e7dd99(2018年8月16日)参照してください。( Junio C Hamanoによってマージされました---コミット39e415c、2018年8月20日pclouds
gitster

チェリーピック:修正--CHERRY_PICK_HEADを削除しないでください

--quitあるはずです--abortが、復元せずにHEAD
置き去りにすると、まだ進行中CHERRY_PICK_HEADの他のコマンドを間違える可能性がありますcherry-pick(たとえば、 " git commit --amend"は機能しなくなります)。それもきれいにしてください。

の場合--abort、この削除の仕事はCHERRY_PICK_HEAD" git reset"であるため、他に何もする必要はありません。--abortただし、確認のためにテストにチェックを追加しましょう。

于 2018-08-21T21:38:09.323 に答える
7

git cherry-pick --continueが機能しない場合は、 gitが古すぎることを意味します。このオプションは、commit5a5d80fのgit1.7.8 (2011年12月)に導入されました。

これは、.git / sequencer / todoから最初の命令を削除し、そこにリストされている残りのチェリーピックを実行することで機能します。「」にリストされている最初のコマンドのオプション(「 -s」と「」を考えてください) 。-X.git/sequencer/opts

最近(2014年)、それは「You have not concluded your cherry-pick」が表示されたときに使用するコマンドになります。

于 2014-08-05T12:13:59.887 に答える
1

別のオプション:Git 2.23(2019年第3四半期)では、git cherry-pick --continue実際に機能します!

マルチステップのチェリーピックまたは復帰の1つのステップがリセットまたはコミットされると、コマンドラインプロンプトスクリプトが現在のステータスを認識できなくなり、改善されました。

Phillip Wood()によるcommit e981bf7(2019年7月1日)を参照してください。( Junio C Hamanoによってマージされました---コミット8a4acc5 、20197月19日)phillipwood
gitster

git-prompt:改善cherry-pick/revert検出

一連のチェリーピックまたは復帰の途中でユーザーが競合解決をコミットまたはリセットすると、CHERRY_PICK_HEAD/REVERT_HEADが削除されるため、これらのファイルがない.git/sequencer/todo場合は、チェリーピックまたは復帰があるかどうかを確認する必要があります。進捗。

cherry-pickまたはが進行中であるかどうかを確認します。ユーザーが一連のピックまたは復帰の途中でrevert''との競合解決をコミットした場合、/は存在しないため、ファイルを読み取る必要があります。git commitCHERRY_PICK_HEADREVERT_HEADtodo

于 2019-07-21T03:31:36.957 に答える