web-dev-qa-db-ja.com

「致命的:Gitでチェリーピックに失敗しました」

私はブランチXに取り組んでいました。コミットしてプッシュしました。

それから、cherry-pickそれをブランチYにしたかった。しかし、マージされていないファイルが存在するため、次のメッセージが表示されました。

error: 'cherry-pick' is not possible because you have unmerged files.
hint: Fix them up in the work tree,
hint: and then use 'git add/rm <file>' as
hint: appropriate to mark resolution and make a commit,
hint: or use 'git commit -a'.
fatal: cherry-pick failed

ここで、ブランチYを削除してから、ブランチYを再作成し、チェリーピックしようとしたファイルを手動で編集したいだけです。

現在、ブランチは作業中のブランチであるため、削除できません。他のブランチをcheckoutできません。ブランチを変更しようとすると、次のエラーが表示されます。

mod/assign/locallib.php: needs merge
error: you need to resolve your current index first

ブランチYを失うことなく、ブランチXを削除するだけです。

編集#1

ファイルを編集しましたmod/assign/locallib.php

git statusを実行すると、次のメッセージが表示されます。

# On branch MDL-38267_24
# Unmerged paths:
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      mod/assign/locallib.php
#

git add ..に追加するファイルは何ですか?

21
xan

競合ファイルはすでに編集されているため、必要なのは

git add mod/assign/locallib.php

それから

git cherry-pick --continue
15
pktangyue

マージしようとしました(git mergeまたはgit pull)および競合が解決されていないファイルがあります。もしあなたがそうするなら git status、おそらく「両方によって変更された」ファイルがリストされます。他のことをする前に、これに注意する必要があります。

行う git mergetoolそして、ファイルを1つずつ表示します。競合が解決されるようにファイルを修正すると、先に進むことができます。

2
Schleis