プログラミング初心者にオススメ

【Git】cherry-pickを使用して特定のコミットを取り込む方法!

どうも。みずかず(@mizukazu_1)です。

仕事でGitを使用しているのですが、この前cherry-pickの機能を使用する機会があったので備忘録がてら紹介します。

cherry-pickとは

cherry-pickは他のブランチのある特定のコミットを現在のブランチに反映する機能です。

まだ1回しか使ったことが無いのですが、使いこなしたらかなり便利な機能だと思います。

cherry-pickを使ったきっかけ

僕の場合ですと、同じブランチを2つ作ってしまい両方とも中途半端に作業をしてしまったんですよね。

それで片方のコミットを片方のブランチに反映させたいな~と思ったのがきっかけでした。

てか、ぶっちゃけそれだったらマージを使えばいいような気もするのですがコミットログにマージを残したくなかったのでcherry-pickを使いました。

チーム開発でのGit使用歴がまだまだ浅いので今回の使い方が正しかったのかは定かじゃないのですが、少なくとも勉強にはなったので良かったと思っています。

cherry-pickの使い方

それでは実際の使い方を紹介していきます。

使い方には2種類あって1つはGitのコマンド上での操作、2つ目はSourceTreeからの操作。

僕は普段SourceTreeを使用しているのでSourceTreeから使用したのですが、今後の為にもここでは2つとも紹介します。

Gitコマンドでの操作

コマンドから操作する場合には「cherry-pick」コマンドを使用します。

手順としては

  1. 取り込みたいコミットがあるブランチにチェックアウト
  2. git logコマンドから対象のコミットのコミットIDを取得
  3. 反映先のブランチにチェックアウト
  4. cherry-pickコマンドを使用して2で取得したIDのコミットを取り込む

ざっとこんな感じです。

例:test1ブランチにtest2ブランチのコミットを取り込む

コマンドからでもそんなに難しくはなさそうですね。

慣れてる人ならこっちの操作の方が早いと思います。

SourceTreeでの操作

手順自体はコマンドでの操作と同じなのでこちらでは割愛します。

まずtest1ブランチにいるかの確認を行います。

次に取り込みたいコミットの上で右クリック。

下から3番目のチェリーピックを選択します。

はいを選択してチェリーピックの完了です。

万が一コンフリクトが起きた場合にはこの後に解消作業が待っています。。。

コンフリクトがない場合には取り込んだコミットがステージングに上がった状態となりますのでコミットをします。

まとめ

今回は「cherry-pick」の使い方を紹介しました。

僕自身Git自体がまだまだ未熟なので日々勉強中って感じなのですがこういった新しい機能を覚えると使うのが楽しくなってきますよね。

恐らく頻繁に使用するような機能ではないと思うのですが、自分が知っているだけでチームとしての知識にもなるので覚えて損はないと思います!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です