0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Gitで別ブランチの特定のコミットをCherry-pickする方法

Last updated at Posted at 2024-04-03

Gitの強力な機能の一つに、別のブランチから特定のコミットを選択して現在のブランチに適用する「Cherry-pick」があります。この機能は、特定の修正や機能のみを他のブランチに追加したいときに非常に便利です。

1: Cherry-pickしたいコミットのハッシュ値を特定する

Cherry-pickを行う前に、適用したいコミットの正確なハッシュ値を特定する必要があります。コミットのハッシュ値は、Gitのログから確認できます。

git log

上記のコマンドを実行すると、コミット履歴が表示されます。履歴から、Cherry-pickしたいコミットを探し、そのコミットのハッシュ値をメモします。ハッシュ値は、コミットごとに表示される一意の識別子です。

2: Cherry-pickを実行するブランチに切り替える

Cherry-pickしたいコミットを現在のブランチに適用する前に、適切なブランチに切り替える必要があります。Cherry-pickを適用したいブランチにチェックアウトします。

git checkout ブランチ名

3: Cherry-pickの実行

Cherry-pickを実行するブランチに切り替えたら、以下のコマンドを使用して、特定のコミットを現在のブランチに適用します。

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

これにより、指定したハッシュ値のコミットが現在のブランチに適用されます。

注意点

  • Cherry-pickを行うと、新しいコミットが現在のブランチに作成されます。このコミットは、元のコミットの内容を持ちますが、新しいハッシュ値が割り当てられます。
  • コンフリクトが発生する可能性があります。Cherry-pick中にコンフリクトが発生した場合は、それを解決し、コミットを完了させる必要があります。

マージコミットのCherry-pickと-mオプション

git cherry-pickコマンドにおける-mオプションは、マージコミットをCherry-pickする際に使用します。通常のコミットをCherry-pickする場合にはこのオプションは必要ありませんが、マージコミットを処理する際には、どの親ブランチの変更を取り込むかを指定する必要があるため、-mオプションが必要になります。

マージコミットをCherry-pickする際のステップ

  1. マージコミットのハッシュ値を確認: マージコミットをCherry-pickする前に、そのハッシュ値をgit logなどで確認します。
  2. 適切なブランチに切り替え: Cherry-pickを適用したいブランチに切り替えます。
  3. -mオプションを使用してCherry-pick実行: マージコミットには複数の親が存在するため、-mオプションに続けて親の番号(通常は1または2)を指定してCherry-pickを実行します。
git cherry-pick -m 親の番号 マージコミットのハッシュ値

注意点

  • 親の選択: マージコミットが持つ親は通常2つあります。-mオプションに続けて、どの親の変更を適用するかを指定する必要があります。
  • コンフリクトの可能性: マージコミットをCherry-pickすると、コンフリクトが発生する可能性が高くなります。コンフリクトが発生した場合は、手動で解決し、Cherry-pickを完了させる必要があります。

マージコミットのCherry-pickの使用例

masterブランチにfeatureブランチがマージされたマージコミットを現在のブランチに適用したい場合、masterが第1親、featureが第2親となります。この場合、以下のようにコマンドを実行します。

git cherry-pick -m 1 マージコミットのハッシュ値

これにより、マージコミットの第1親(masterブランチ)の変更が現在のブランチに適用されます。

まとめ

GitのCherry-pick機能を使用すると、別のブランチから特定のコミットを現在のブランチに簡単に適用できます。この方法は、特定の修正や機能のみを選択的に取り込みたい場合に特に便利です。しかし、コンフリクトの可能性に注意しながら慎重に操作することが重要です。

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?