Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

GitHub

Gitでブランチ間の差分を確認してマージ(差分を取り込み)する方法

投稿日:2023年10月4日 更新日:

 

<目次>

Gitでブランチ間の差分を確認してマージ(差分を取り込み)する方法
 やりたいこと/背景
 STEP1:ローカル環境のmainブランチが最新か?を確認
 STEP2:遅れているブランチに切り替え
 STEP3:mainブランチの変更を遅れているブランチに反映
 STEP4:変更をリモートリポジトリにプッシュ

Gitでブランチ間の差分を確認してマージ(差分を取り込み)する方法

やりたいこと/背景

●やりたいこと
・Gitであるブランチがmain(やmaster)から見て遅れている場合、追いつきたい。
 
(図100)
 
●背景
一般的には、特定の機能や修正が完了し、そのブランチがmain(または他の適切なブランチ)にマージされた後、そのブランチは削除されることが多いです。理由は、Gitのブランチは軽量で、必要に応じて簡単に作成・削除できるからです。
 
しかし、以下のようなケースで既存のブランチを再利用することもあります。
・①マージした後でも引き続きそのブランチで作業を行う場合(例:機能追加やバグ修正など)
・②マージした内容に何らかの問題が発見され、再度そのブランチで作業を行う場合
 
ただし、時間を置いてから再度ブランチを使う場合、その間にmainブランチは進行している可能性があります。そのため、再利用する前には必ずmainブランチから最新の変更を取り込む必要がある。これにより、ブランチ間の差分を最小限に保つことができ、後々のマージの際に発生するコンフリクトを防ぐことができます。
 
本記事では、その際に必要となる「mainブランチから最新の変更を取り込む」手順をご紹介します。

STEP1:ローカル環境のmainブランチが最新か?を確認

最初に、ローカル環境のmainブランチが最新であることを確認します。これは以下のコマンドで実行できます
> git checkout main
> git pull
(図111)
(図112)

(実行結果例)
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
(図113)
(実行結果例)

remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (5/5), 3.65 KiB | 287.00 KiB/s, done.
From https://github.com/your-repo-name/slack-chatbot-openai-plain
   4832708..c90d385  main                    -> origin/main
 * [new branch]      feature/aaa -> origin/feature/aaa
 * [new branch]      feature/bbb -> origin/feature/bbb 
 * [new branch]      feature/ccc -> origin/feature/ccc
 * [new branch]      feature/ddd -> origin/feature/ddd
 * [new branch]      feature/eee -> origin/feature/eee
Updating 4832708..c90d385
Fast-forward
 app.py                |  56 ++--------------
 azure_table_utils.py  |  38 +++++++++++
 conversation_util.py  | 182 ++++++++++++++++++++++++++++++++++++++++++++++++++
 env_sample.py         |  21 +++++-
 log_utils.py          |  13 ++++
 requirements.txt      |   7 +-
 respond_to_message.py | 146 ++++++++++++++++++++++++++++++++++++++++
 7 files changed, 412 insertions(+), 51 deletions(-)
 create mode 100644 aaa.py
 create mode 100644 bbb.py
 create mode 100644 ccc.py
 create mode 100644 ddd.py

STEP2:遅れているブランチに切り替え

次に、遅れているブランチに切り替えます。これは以下のコマンドで実行できます:
> git checkout [your_branch]
(図211)
(図212)

STEP3:mainブランチの変更を遅れているブランチに反映

その後、mainブランチの変更を遅れているブランチに反映します。これは以下のコマンドで実行できます:
> git merge main
または、より明確な履歴を保つために、リベースを使用することもできます:
> git rebase main
(図311)
(実行結果例)
Successfully rebased and updated refs/heads/feature/loading-message.
マージやリベース中にコンフリクトが発生した場合は、それらを解決する必要があります。

目次にもどる

STEP4:変更をリモートリポジトリにプッシュ

最後に、変更をリモートリポジトリにプッシュします。これは以下のコマンドで実行できます:
> git push origin [your_branch]
 
(図411)


(図412)

(実行結果例)

Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 409 bytes | 409.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/your-repo-name/slack-chatbot-openai-plain.git
   21b734d..4c30759  feature/loading-message -> feature/loading-message

(図413)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-GitHub
-

執筆者:


comment

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

関連記事

GitHubからEclipseにリポジトリのクローンをする手順について

本記事ではGitHubからEclipseにリポジトリのクローン(ローカルにコピー)をして、ご自身のEclipse上でそのクローンを編集できるようにする方法についてご紹介します。 <目次> (1) Gi …

GitHubのアカウント作成の手順と初期設定をご紹介

  <目次> (1) GitHubのアカウント作成の手順と初期設定をご紹介  (1-1) STEP1:GitHubアカウント作成  (1-2) STEP2:SSH Keyの設定 (1) Gi …

Visual StudioとGitHubを連携させる方法(VSのプロジェクトをGit Hubに新規登録)

  <目次> (1) Visual StudioとGitHubを連携させる方法(VSのプロジェクトをGit Hubに新規登録)  (1-1) はじめに  (1-2) Visual Studi …

GitHubの使い方を開発者向けにご紹介

  <目次> (1) GitHubの使い方を開発者向けにご紹介  (1-1) 目的と概要  (1-2) 開発者の操作手順 (1) GitHubの使い方を開発者向けにご紹介 (1-1) 目的と …

GitHubにEclipseの既存プロジェクトを登録(コミット+プッシュ)する手順

  <目次> (1) GitHubにEclipseの既存プロジェクトを登録(コミット+プッシュ)する手順  (1-1) STEP0:前提条件  (1-2) STEP1:Javaプロジェクトを …

  • English (United States)
  • 日本語
Top