git-cherry-pick - 既存のコミットを取り出して、その変更を適用します。
git cherry-pick [--edit] [-n] [-m parent-number] [-s] [-x] <commit>
既存のコミットを一つ渡し、そのパッチによる変更を適用し、新しいコミットを記録します。 ワーキングツリーがクリーンであることが必要です(HEADコミットから何も変更されていないということです)
チェリーピックするコミットを選択します。 コミットに関する完全な記述方法については、 git-rev-parse(1) の "SPECIFYING REVISIONS" を参考にして下さい。
このオプションと一緒にgit cherry-pick すると、 コミットメッセージをコミットする前に編集出来ます。
コミットを記録する際、通常のコミットメッセージに加え、この変更が どこのコミットからチェリーピックされたのかを、追記します。 追記されるのは、チェリーピック時にコンフリクトが起きなかった時だけです。 もしあなたの個人的なブランチからチェリーピックする場合、 受け手にとって不要な情報なので、このオプションは使わないで下さい。 一方、お互いに公開されている参照可能な二つのブランチ(例. 開発ブランチから メンテナンスブランチへ、旧リリース版のためにバックポーティングする)ならば、 この情報を加えることは役に立つことがあります。
上で説明した-x`がデフォルトオプションとして使われていた時、 -r`はそれを無効にする役割を担っていました。 今はデフォルトでは'-x'が無効のため、このオプションは何もしません。
通常、マージコミットをチェリーピックすることはできません。 何故なら、マージした親のどちらがメインラインなのか 判断できないからです。 このオプションはメインラインの親番号(1 から開始する数値)を指定し、 指定した親との相対的な変更を適用する為のオプションです。
通常、チェリーピックは自動的にコミットを作成します。 このフラグは、指定されたコミットをチェリーピックするのに 必要な変更をあなたのワーキングツリーとインデックスに適用しますが、 コミットはしません。 加えてこのオプションが使われた場合、 あなたのインデックスがHEADコミットである必要はありません。 チェリーピックはあなたのインデックスの初期状態に対して変更を加えるでしょう。
これは、一つ以上のコミットをチェリーピックして インデックスの行に影響を与えるのに便利です。
コミットメッセージの最後に署名を加えます。
このプログラムは Junio C Hamano <[email protected]> によって書かれました。
このドキュメントは Junio C Hamano と git-list <[email protected]> 有志によって書かれました。
このコマンドは git(1) スイートの一部です。