マスターからコミットをチェリーピックして、現在の実稼働ブランチに入れようとしています。ただし、git cherry-pick <SHA-hash>
を実行すると、次のメッセージが表示されます。
# On branch prod_20110801
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
# site/test-result/
nothing added to commit but untracked files present (use "git add" to track)
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
Otherwise, please use 'git reset'
注:リセットとリセット--hard HEAD ^を試しましたが、どちらも何も変更していないようです。
これがなぜ私にとってうまくいかないのか、私は混乱しています。
これを解決する方法についての洞察、アドバイス、またはアイデアは役に立ちます〜!
Gitはチェリーピックをノーオペレーションとして解決しています。そのコミットによって導入されたすべての変更は、現在のブランチのコミットによって導入されています。 (または、とにかくGitが考えることです。)適切なマージ、リベース/チェリーピック、または断片的なパッチとして、チェリーピッキングのコミットが何らかの形でまだマージされていないことを確認します。 (つかいます git show <commit-id>
差分を表示します。)
私の場合、これは私を夢中にさせていました。チェリーピックにしたい特定のコミットがnotが現在のブランチにマージされたことは非常に明白でした。
誰かが1週間前にalreadyチェリーを選んだことがわかりました。 changesは特定のSHAではなく、現在のブランチに既にあり、気づいていませんでした。
チェリーピックしようとしているファイルを確認します。それらにすでに変更がある場合、別の方法でコミットのバージョンが既に選択されているか、追加されています。したがって、チェリーを再度選択する必要はありません。
空のファイルを追加することにも注意してください(例:.gitkeep
)ツリーへのチェリーピックは、空のコミットと見なされます。