サーチ…
前書き
チェリーピックは、コミットで導入されたパッチを取り出し、あなたが現在いるブランチに再適用しようとします。
構文
- 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]
新しいコミットa66b23
がa66b23
と同じ内容(ソース差分、コミットメッセージ)を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のドキュメントを参照してください。