サーチ…


前書き

チェリーピックは、コミットで導入されたパッチを取り出し、あなたが現在いるブランチに再適用しようとします。

出典:Git SCM Book

構文

  • git cherry-pick [-edit] [-n] [-m親番号] [-s] [-x] [--ff] [-S [key-id]]コミット...
  • git cherry-pick - 継続
  • git cherry-pick --quit
  • git cherry-pick --abort

パラメーター

パラメーター詳細
-e、--edit このオプションを指定すると、 git cherry-pickはコミットする前にコミットメッセージを編集できるようになります。
-バツコミットを記録するとき、元のコミットメッセージに "(チェリーはコミットから選んだ...)"という行を追加して、この変更がチェリーピックされたことを示します。これは競合のないチェリーピックのみに行われます。
--ff 現在のHEADがcherry-pick'edコミットの親と同じ場合、このコミットへの早送りが実行されます。
- 持続する .git / sequencerの情報を使用して進行中の操作を続行します。失敗したチェリーピックまたは復帰の競合を解決した後も継続することができます。
- 終了する進行中の現在の操作については忘れてください。チェリーピックまたは復帰に失敗した後にシーケンサーの状態をクリアするために使用できます。
- アボート操作をキャンセルし、シーケンス前の状態に戻ります。

あるブランチから別のブランチへのコミットのコピー

git cherry-pick <commit-hash>は、既存のコミットの変更を別のブランチに適用し、新しいコミットを記録します。基本的に、ブランチからブランチにコミットをコピーできます。

与えられた木(源)

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

b886a0をマスターにコピーしたいとしましょう( 5a6057上に)。

私たちは走れる

git checkout master
git cherry-pick b886a0

今、私たちの木は次のようになります:

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 - a66b23 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

新しいコミットa66b23a66b23と同じ内容(ソース差分、コミットメッセージ)をb886a0 (ただし、別の親)。チェリーピッキングは、そのブランチの変更(この場合はb886a0 )のみをピックアップすることに注意してください(このためには、 b886a0またはマージを使用する必要があります)。

1つのブランチから別のブランチにコミットの範囲をコピーする

git cherry-pick <commit-A>..<commit-B> Aののすべてのコミットを、現在チェックアウトされているブランチの上にBを含めて配置します。

git cherry-pick <commit-A>^..<commit-B>はコミットAと、現在チェックアウトされているブランチの上にBを含むすべてのコミットを配置します。

チェリーピックが必要かどうかの確認

チェリー・ピック・プロセスを開始する前に、チェリー・ピックするコミットがターゲット・ブランチにすでに存在するかどうかを確認できます。その場合、何もする必要はありません。

git branch --contains <commit>は、指定されたコミットを含むローカルブランチをリストします。

git branch -r --contains <commit>は、リスト内のリモート追跡ブランチも含まれます。

上流にまだ適用されていないコミットを見つける

コマンドgit cherryはまだチェリーピックされていない変更を表示します。

例:

git checkout master
git cherry development

...と出力が少しこのように表示されます:

+ 492508acab7b454eee8b805f8ba906056eede0ff
- 5ceb5a9077ddb9e78b1e8f24bfc70e674c627949
+ b4459544c000f4d51d1ec23f279d9cdb19c1d32b
+ b6ce3b78e938644a293b2dd2a15b2fecb1b54cd9

一緒にいることをコミット+まだに桜摘みしていないものになりますdevelopment

構文:

git cherry [-v] [<upstream> [<head> [<limit>]]]

オプション:

-v SHA1の横にコミット対象を表示します。

<upstream>同等のコミットを検索する上流ブランチ。デフォルトはHEADの上流ブランチです。

<head>作業ブランチ。デフォルトはHEADです。

<limit>コミットを上限(およびそれを含む)として報告しないでください。

詳細については、 git-cherryのドキュメントを参照してください。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow