Madogiwa Blog

主に技術系の学習メモに使っていきます。

Git:cherry-pickを使って特定のコミットだけをブランチに反映する

ブランチを切り忘れて、複数の対応が含まれてしまったブランチから特定の対応を含んだブランチを作成してプルリクを作りたくてcherry-pickについて調べてのでメモφ(..)

やりかた

前提

今回は下記のようなdevelopブランチに下記のようなコミットログがあった際にead2ed604e6e14を指定して、reviewブランチに反映させmasterブランチにプルリクを出すケースを想定して手順をやってみますφ(..)

f:id:madogiwa0124:20171228093635j:plain

特定のコミットをreviewブランチに反映してみる

特定のコミットをreviewブランチに反映するまでの手順概要は下記のとおりです。

  1. masterをチェックアウト
  2. reviewブランチをmasterから作成
  3. cherry-pickを使って特定のコミットを反映

ポイントは、cherry-pickです。cherry-pickを使うことでコミットを指定し、反映することが出来ます!

git cherry-pick コミットハッシュ

実際に私が作業したコンソールのログが下記です。

$ git cherry-pick ead2ed6
[review 67bbc40] rename snake_case username,schoolname
 Date: Mon Dec 25 22:39:46 2017 +0900
 5 files changed, 17 insertions(+), 11 deletions(-)
 create mode 100644 db/migrate/20171225133337_change_clumn_name_to_users.rb
$ git cherry-pick 04e6e14
 Date: Tue Dec 26 22:30:30 2017 +0900
 1 file changed, 1 insertion(+), 1 deletion(-)

masterにプルリクを出してみる

先程作成したreviewブランチをgit pushし、masterにプルリクを出してみます!

f:id:madogiwa0124:20171228092954p:plain

特定のコミットのみを含んだプルリクが作成できました(._.)

おわりに

cherry-pickを使うと特定のコミットを反映することが出来るので、コードレビューの際に主要なコミットだけを含んだブランチを作成してプルリクを出す等、色々とはかどりそうだなと思いましたφ(..)!

参考

backlog.com