SourceTreeでGitHubのリモートブランチをmasterへマージする手順|競合解決の流れも解説

プログラミング

Gitを複数人で利用していると、担当者ごとに作成したブランチへ変更をプッシュした後、それらの変更を1つのブランチへ統合するマージ作業が必要になります。SourceTreeを使えば、コマンド操作に慣れていない場合でも画面操作でマージできます。

この記事では、SourceTreeからGitHub上のリモートブランチの変更をmaster(またはmain)へ取り込む基本的な流れと、マージ時に競合(コンフリクト)が発生した場合の対応手順を初心者向けに解説します。

Gitのマージ作業で行っていることを理解する

Gitでは、複数人が同じコードを編集する場合、それぞれが別のブランチで作業することが一般的です。例えば、担当者Aがfeature-a、担当者Bがfeature-bというブランチで作業し、それぞれGitHubへプッシュします。

その後、完成した変更をmasterやmainブランチへまとめる作業がマージです。マージによって各担当者の変更履歴を統合し、次の開発作業を進められる状態にします。

SourceTreeで操作する場合も基本的な考え方は同じで、「取り込みたいブランチへ移動する」「対象ブランチをマージする」という流れになります。

SourceTreeでリモートブランチを最新状態にする

最初にGitHub側の最新情報をローカルへ取得します。SourceTreeを起動したら、対象リポジトリを開きます。

上部メニューにある「フェッチ」をクリックすると、GitHub上に存在する最新のブランチ情報を取得できます。

この時点ではまだコードの内容は変更されません。リモート側に新しいコミットがあることを確認するための操作です。

SourceTreeからmasterへブランチをマージする手順

マージ作業では、変更を受け取る側のブランチへ移動してからマージを実行します。例えば担当者別ブランチをmasterへ統合する場合は、まずmasterをチェックアウトします。

具体的な手順は以下の流れになります。

  1. SourceTree左側のブランチ一覧からmaster(またはmain)をダブルクリックする
  2. 作業ブランチの最新状態を確認する
  3. 上部メニューの「マージ」をクリックする
  4. 取り込みたいリモートブランチを選択する
  5. マージを実行する

例えば「feature-user」というブランチをmasterへ取り込む場合、masterを現在の作業ブランチにした状態で「feature-userをmasterへマージする」という操作になります。

マージ後にGitHubへ反映する方法

SourceTree上でマージが完了しても、その変更はまだローカル環境だけの状態です。GitHub側のmasterへ反映するにはプッシュが必要です。

マージ後、コミット履歴にマージコミットが表示されていることを確認し、「プッシュ」をクリックします。

送信先としてmaster(main)が選択されていることを確認して実行すると、GitHub上のブランチにも統合結果が反映されます。

マージ時に競合(コンフリクト)が発生した場合の対応手順

複数人が同じファイルの同じ部分を編集している場合、Gitは自動で統合できず競合が発生することがあります。

例えば、Aさんが同じ行を変更し、Bさんも同じ行を変更していた場合、Gitはどちらの内容を採用するべきか判断できません。そのため人間が修正する必要があります。

SourceTreeで競合が発生すると、対象ファイルが「競合」として表示されます。

  1. 競合しているファイルを開く
  2. 残したいコードを選択して修正する
  3. ファイルを保存する
  4. SourceTreeで解決済みとして登録する
  5. コミットする

競合部分にはGitによって「<<<<<<<」「=======」「>>>>>>>」という目印が追加されます。不要な記号を削除し、正しいコードだけを残してください。

マージ作業で注意したいポイント

複数人で利用するリポジトリでは、masterやmainへ直接マージする権限を持つ人を決めておくことが重要です。誰でも自由にマージすると、意図しない変更が混ざる可能性があります。

また、大量の変更を一度にマージすると競合が発生しやすくなるため、担当者ごとの作業単位で小まめに統合する方が安全です。

例えば、毎週1回まとめて10人分の変更を統合するよりも、作業完了ごとに確認してマージする方が問題発生時の原因調査も簡単になります。

まとめ

SourceTreeからGitHubのリモートブランチをmasterへマージする場合は、「取り込み先のブランチへ移動する」「対象ブランチをマージする」「プッシュする」という流れで作業します。

競合が発生した場合でも、変更内容を確認して不要なコードを削除し、解決済みとしてコミットすれば統合できます。

Git初心者の場合は、まずテスト用ブランチでマージ操作を経験してから本番ブランチへ反映すると、安全に作業手順を身につけることができます。

コメント

タイトルとURLをコピーしました