Menu
Coddy logo textTech

Git Cherry-pick

最終更新

git cherry-pick は、1 つ以上の特定のコミットの変更をコピーし、それらを新しいコミットとして現在のブランチに適用します。ブランチ全体をマージせずに別のブランチから 1 つの修正だけを取り込む方法です。ホットフィックスをバックポートしたり、フィーチャーブランチから 1 つのコミットを取り出したりするのに便利です。

これらをターミナルプレイグラウンドで試してみましょう。ブラウザ上の本物のシェルで、インストールするものは何もありません。

構文

CommandWhat it does
git cherry-pick <hash>現在のブランチに 1 つのコミットを適用する
git cherry-pick <a> <b>複数のコミットを順番に適用する
git cherry-pick <a>..<b>コミットの範囲を適用する(a を除く)
git cherry-pick -n <hash>変更を適用するがまだコミットしない
git cherry-pick -x <hash>元のコミットをメッセージに記録する

cherry-pick の実行中

cherry-pick で競合が発生した場合は、解決してから続行します。

CommandWhat it does
git cherry-pick --continue競合を解決した後に再開する
git cherry-pick --abortキャンセルしてブランチを復元する
git cherry-pick --skip現在のコミットをスキップする

Git cherry-pick に関するよくある質問

git cherry-pick は何をしますか?
特定のコミットが導入した変更を取り出し、それらを(新しい hash を持つ)まったく新しいコミットとして現在のブランチに適用します。merge や rebase とは異なり、ブランチ全体を取り込むことはなく、指定したコミットだけを取り込みます。
cherry-pick はいつ使うべきですか?
特定のコミットを別の場所で必要とするときに使います。たとえば、バグ修正を main から release ブランチにバックポートしたり、すべてをマージせずにフィーチャーブランチから 1 つの有用なコミットを取り出したりする場合です。ブランチ全体が必要な場合は、代わりに merge や rebase を使いましょう。
複数のコミットを cherry-pick するにはどうすればよいですか?
それらを列挙します。git cherry-pick <a> <b> <c> は各コミットを順番に適用します。連続した範囲には git cherry-pick <start>..<end> を使います。これは start より後のすべてのコミットを end を含めて適用します。start 自体も含めたい場合は <start>^..<end> を追加します。
cherry-pick で競合が発生したらどうすればよいですか?
Git は一時停止し、競合したファイルにマークを付けます。それらを解決し、結果を git add してから git cherry-pick --continue を実行します。完全に取りやめるには git cherry-pick --abort を使います。これはブランチを cherry-pick が始まる前の状態に復元します。
これをオンラインで練習できますか?
はい。ターミナルプレイグラウンドを開けば、ブラウザ上の本物のシェルで git cherry-pick を実行できます。インストールするものは何もありません。Coddy の無料のインタラクティブな Git コースでも、ブランチ間でコミットを移動する方法を段階的に扱っています。
Coddy programming languages illustration

Coddy で Git を学ぼう

始める