【Git】git cherry-pickの使い方|欲しいコミットを指定してとってくる方法を、実例で分かりやすく解説(初心者向け)

git-prograshi(プロぐらし)-kvgit/github

Gitにはgit cherry-pickというコマンドがあります。英語のcherry pickとは自分の気に入ったものだけをつまみ食いするという意味です。

つまり、欲しいコミットだけとってくる、自分にとって都合のいい便利コマンドです。


cherry-pickの使い方

cherry-pickの使い方はとても簡単です。取得するコミットは1つだけ、または連続した複数のコミットを取得することができます。

自分のブランチで次のコマンドを実行します。

コミットを1つだけとってくる

 $ git cherry-pick <欲しいコミット番号>

連続したコミットをとってくる

 $ git cherry-pick <欲しいコミット番号(開始)>..<欲しいコミット番号(終了)>

連続したコミットを取得する場合は、コミット番号の始まりと終わりを指定して..で繋ぎます。


注意点

コミット番号は過去の履歴の影響を受けるため、同じコミット番号にはなりません。コードの内容を移植して、新しコミット番号が付与されます。


実例

例として、リモートブランチのarticlesブランチの 15d340c70 というコミットを取得します。

▼欲しいコミット

(articlesブランチにて)
$ git log --oneline
15d340c70 (HEAD, origin/articles) [F]Article list
78f5c9911 [F]migration version


▼現在のローカルブランチのコミットログ

$ git log --oneline
3aebedb32 (HEAD -> test) [F]conflict schema.rb version
6e98e6c92 (origin/test) [F]article_rankings model and job

現在のローカルブランチのコミットの最新は 3aebedb32 です。この上に欲しいコミットを追加します。


cherry-pickの実行

git cherry-pickを実行すると、指定したコミットメッセージが表示されます。

$ git cherry-pick 15d340c70
[test 4a76eb1c6] [F]Article list_articles, html_article ArticleRanking
 Author: xxx yyy <xxx+ouo@gmail.com>
 Date: Fri Nov 19 19:06:29 2021 +0900
 1 file changed, 52 insertions(+), 7 deletions(-)

ログを確認すると指定したコミットが一番上に来ていることが確認できます。

$ git log --oneline
4a76eb1c6 (HEAD -> test) [F]Article list_articles, html_article ArticleRanking
3aebedb32 [F]conflict schema.rb version
6e98e6c92 (origin/test) [F]article_rankings model and job


コミット番号は過去のコミットの影響を受けるので、指定したコミット番号 15d340c70 ではなく、新たに 4a76eb1c6 というコミット番号で追加されます。

タイトルとURLをコピーしました