0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Git] cherry-pickを使用したブランチ操作

Last updated at Posted at 2024-09-25

概要

Gitの操作でcherry-pickを使ってPR(Pull Request)を作成した為、その手順を備忘録としてまとめました。

cherry-pickの概要

機能

  • 主(軸)となるブランチに対して、特定のコミットのみを適用する際に使用するコマンド
  • 複数のブランチで同じ内容が含まれる場合、コンフリクトの可能性がある為、注意が必要

cherry-pickの視覚的な例

1.初期状態

  • mainブランチとdevelopブランチがそれぞれ異なるコミット履歴を持っている

init.png

2.cherry-pickのプロセス

  • developブランチにあるコミットCDcherry-pickし、mainブランチに反映させる
  • これにより、mainブランチが最新の状態となる

cherry-pick.png

事前準備

  • git logを実行し、cherry-pickを行いたいコミットのハッシュ(コミットID)を確認・リストアップしておく
git log
# 出力結果

commit 2acd***************************3871 # ← この部分がコミットハッシュ
Author: test 1234 <62537601+test-1234@users.noreply.github.com>
Date:   Wed Jan 〇〇 **:**:** 20** +0900
    feat: 〇〇を修正 (#1)

手順

注意
※ 作業は、ローカル環境のターミナル(CLI)で行う

ブランチ切り替えと最新情報の取得

  • mainブランチに切り替える
git checkout main

  • リモートリポジトリから最新の情報を取得する
git pull origin main
  • mainブランチからcherry-pick用のブランチを作成する
git checkout -b BranchName # ブランチ名は任意

# 入力例
git checkout -b main_merge_年月日 #(年月日に、20510101を記載する)

cherry-pick作業

  • 事前に控えておいたコミットのハッシュ(コミット Id)を使用して、mainブランチに取り込む
git cherry-pick [コミットハッシュ]

# 入力例
git cherry-pick 2acd***************************3871
  • git logを使って、適用したいコミットのみが含まれているかを確認する
git log
  • cherry-pickで取り込んだブランチをリモートリポジトリにpushする
git push origin BRAHCHNAME # ブランチ名は任意

# 入力例 
git push origin main_merge_年月日 #(年月日に、20510101を記載する)

注意
リモートリポジトリにpushする際、BranchNameに本番環境のブランチ名(例: main)を記載しない

PR(Pull Request)作成

GitHubにて、master <- BranchNameの構造でPRを作成する

prの画面.png

参考資料

まとめ

チーム開発の際、必ず必要なGit操作だと考えています。今回の改修で経験出来て良かったと感じております。Git操作に関しては、今後もより精進したいと思います

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?