2011-08-15 1 views
66

私は、masterからコミットをチェリーピックして現在のプロダクションブランチに取得しようとしています。しかし、私はgit cherry-pick <SHA-hash>を実行すると、私はこのメッセージが表示されます。git cherry-pickが動作しない

# 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 ^をやってみたこと、そして何かを変えたようだったでもありません。

これがなぜ私にとってうまくいかないのか混乱しています。

任意の洞察力、アドバイス、またはこれは〜参考になる解決する方法についてのアイデア!

+0

これは私が間違ってコミットを間違って選択しようとしたときに起こったことです。ときどきgitkを使うときに起こります。 – cst1992

答えて

89

Gitはノーオペレーションとしてチェリーピックを解決された - そのコミットによって導入されたすべての変更は、いくつかによって導入されていますが、あなたの現在のブランチにコミットします。 (これはGitの考えです)あなたがチェリーピッキングするコミットが、適切なマージ、リベース/チェリーピック、または断片的なパッチのいずれかとして、何とかマージされていないことを確認します。 (使用git show <commit-id>差分を参照する。)

+14

あなたの助言をお寄せいただきありがとうございます。チェリーピックがすでに行われていたことが判明しました。 –

+0

私は、コミットIDが与えられたファイルの内容をチェックしていることを認識していませんでした。私はログのコミットIDを探しに行きましたが、それを見つけることができませんでした。それは既にそれが合併されたことが判明しました。 – mparaz

7

私の場合は特定のコミットということは一目瞭然だったとして、これは、私にナットを運転していた私は桜のピックに望んでいたがが私の現在のブランチにマージされていないました。

誰かがすでにを持っていたことが判明しました。チェリーは1週間前にコミットしました。 が変更されていますが、特定のSHAは変更されていません。すでに現在のブランチに入っていて、気付いていませんでした。

チェリーピッキングしようとしているファイルを確認してください。彼らがすでに変更を行っている場合、コミットのバージョンはすでにチェリーピックされているか、別の方法で追加されています。したがって、再度それを選ぶ必要はありません。

+0

私は確かに、特定のコミットは、チェリーのピックによってもたらされたときにあなたの支店には決して*決して*、チェリーピックは新しいハッシュになるでしょうか?あるいは私は誤解していますか? – msouth

+0

@msouth私が最初に他の答えから取り除いたのは、 "コミットがすでにマージされました"でしたが、私の支店ではないことがわかりました。あなたはチェリーピックがいつも新しいSHAであることについて正しいです。 – pkamb

+0

ええ、私はそれをタイプしたときに「ハッシュによって特定された特定のコミット」を考えていました。私の言葉は不正確でした。私はしばしば、 'git log --graph --pretty --decorate --oneline'の出力を調べて、指定されたSHAが私のブランチにあるかどうかを調べます。コミットメッセージが変更の指標であると考えることに基づいて、どうやって混乱するかについては、下の私の答えを見てください。そうでない状況があります。あなたの脳はそのショートカットを作る傾向があり、時にはあなたを噛んで戻ってくることがあります。 – msouth

1

もツリーに空のファイル(例えば.gitkeep)を追加はコミット空としてチェリーピックによって考慮されることに注意してください。

+0

私の場合、チェリーピックを試す前に復帰コミット(空のコミット自体を元に戻していた)があったので、おそらくこのメッセージが表示されるでしょう。 – lidkxx

0

だから、こここれが発生する可能性があるもう一つの混乱状況だ:私は次のように持っていた:

git log screenshot

私は明らかに何もありませんどの9a7b12eを選ぶ桜にしようとしていた - それも私の言うことを試みましたその行はgit log出力にあり、4497428は本当に欲しかったものです。 (私がしたのは、コミットメッセージを探して、それを見た最初のハッシュをつかんだだけでした)。とにかく、ちょうどあなたがチェリーをしようとすることに騙されることができる別の方法があることを人々に知らせたいと思っています。

+0

説明なしでdownvoteするのはあまり役に立ちません。これは私の検索でこの質問を見つけた私にもたらした問題の正確な再現です。これを改善するための勧告があれば、ただdownvotingではなくコメントで教えてください。 – msouth

関連する問題