😺

【Git】cherry-pickを利用して別のブランチにある特定のコミットを取り込む方法

2023/01/09に公開

はじめに

業務でGitを触る際にcherry-pickコマンドを利用して現在いるブランチに別のブランチにある特定のコミットを取り込む機会があったので、ついでに記事にしていきたいと思います。

今回やること

以下のように別のブランチにある特定のコミットを取り込みます。

作業手順

特定ブランチを取り込みたいブランチに移動する。

コマンド
git checkout <特定のブランチ>
コマンド例
git checkout update-readme

事前にコミットログを確認する。

% git log --oneline
2ce9304 (HEAD -> update-readme, origin/update-readme) Update README.md
4fb0e46 (master) Update README.md
714f797 Update README.md
5de7b2b Merge pull request #2 from satton-infra/20211112
ec722ab 20211112 csvとPictureの追加
18a246f Merge remote-tracking branch 'origin/20211112' into 20211112
4c7b065 Merge pull request #1 from satton-infra/20211112_PictureAdd
3a24abe 20211112_PictureAdd
f90876e 20211112 Picture削除
2a19889 20211112 Picture追加
98eaa09 2021/11/12 first commit
%

別のブランチにある特定のコミットを取得する。

コマンド
git cherry-pick <コミットID>
実行例
% git cherry-pick 2aeb460
[update-readme 2938cee] Add user for users.csv
 Date: Sun Jul 10 12:45:14 2022 +0900
 1 file changed, 2 insertions(+), 1 deletion(-)
%

※今回は別ブランチにあるコミットID2aeb460を取り込みます。

別ブランチのコミットログ
% git log --oneline
2aeb460 (HEAD -> add-user-for-users-csv, origin/add-user-for-users-csv) Add user for users.csv
2ce9304 (origin/update-readme, update-readme) Update README.md
4fb0e46 (master) Update README.md
〜〜〜省略〜〜〜
%

特定のコミットが取得できていることを確認

作業ブランチのコミットログ
% git log --oneline
2938cee (HEAD -> update-readme) Add user for users.csv ← これ
2ce9304 (origin/update-readme) Update README.md
4fb0e46 (master) Update README.md
714f797 Update README.md
〜〜〜省略〜〜〜
%

参考記事

https://www.r-staffing.co.jp/engineer/entry/20200327_1

https://git-scm.com/docs/git-cherry-pick

Discussion