LoginSignup
302
224

More than 3 years have passed since last update.

cherry-pickコマンド備忘録

Last updated at Posted at 2015-06-19

cherry-pickコマンドを使った経緯

本番へのリリースにあたり、リリース用のブランチに変更をコミットしようとしたところ、
過去の改修が含まれていたことに気付き、「特定のコミットだけ反映したいな」と思って調べたのがきっかけです。

cherry-pickコマンドとは?

まさに上記ような状況にぴったりのコマンドで、他ブランチの特定コミットのみを反映されることができるコマンドです。

使い方

cherry-pick コミットIDでそのコミットを反映させることができます。
例 developブランチのコミットをstrawberryブランチにcherry-pickする場合

git.command
git checkout develop
git log

commit f77d749550d38df8b2a11cc3d5c16cd1f26fc025
    staging環境ホスト名変更

commit 7c83ae675baf01ec71799c4cba7d06eb467a6bdd
    パラメータ小文字化対応

commit 0794374042d3def3b5824bdb0be2b215d443b73b
    文字列結合演算子の修正/stagingのhostをlocalに変更

commit 546de2cc727fcae02646c6af637f401e4238feef
    リクエストにパラメータ追加

git checkout strawberry
git cherry-pick 546de2cc727fcae02646c6af637f401e4238feef

みたいな感じです。

実際使ってみてわかったこと

cherry-pickでまとめてコミットしてやったところ、コンフリクトがおきましてダメでした。

まとめてやる方法

git.command
git cherry-pick develop~8..develop

最新から過去にさかのぼり8番目までのコミットを反映されます。

で、結局やった方法は、ひとつずつcherry-pickし、コンフリクトが発生した場合は、コンフリクトを解決しコミットし、cherry-pickし・・・をしました。

ありがとうございました。

参考URL

git cherry-pick まとめめも
git cherry-pickで起きてしまったconflictの解消方法【--ours、--theirs】

302
224
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
302
224