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をチェックアウトします。
具体的な手順は以下の流れになります。
- SourceTree左側のブランチ一覧からmaster(またはmain)をダブルクリックする
- 作業ブランチの最新状態を確認する
- 上部メニューの「マージ」をクリックする
- 取り込みたいリモートブランチを選択する
- マージを実行する
例えば「feature-user」というブランチをmasterへ取り込む場合、masterを現在の作業ブランチにした状態で「feature-userをmasterへマージする」という操作になります。
マージ後にGitHubへ反映する方法
SourceTree上でマージが完了しても、その変更はまだローカル環境だけの状態です。GitHub側のmasterへ反映するにはプッシュが必要です。
マージ後、コミット履歴にマージコミットが表示されていることを確認し、「プッシュ」をクリックします。
送信先としてmaster(main)が選択されていることを確認して実行すると、GitHub上のブランチにも統合結果が反映されます。
マージ時に競合(コンフリクト)が発生した場合の対応手順
複数人が同じファイルの同じ部分を編集している場合、Gitは自動で統合できず競合が発生することがあります。
例えば、Aさんが同じ行を変更し、Bさんも同じ行を変更していた場合、Gitはどちらの内容を採用するべきか判断できません。そのため人間が修正する必要があります。
SourceTreeで競合が発生すると、対象ファイルが「競合」として表示されます。
- 競合しているファイルを開く
- 残したいコードを選択して修正する
- ファイルを保存する
- SourceTreeで解決済みとして登録する
- コミットする
競合部分にはGitによって「<<<<<<<」「=======」「>>>>>>>」という目印が追加されます。不要な記号を削除し、正しいコードだけを残してください。
マージ作業で注意したいポイント
複数人で利用するリポジトリでは、masterやmainへ直接マージする権限を持つ人を決めておくことが重要です。誰でも自由にマージすると、意図しない変更が混ざる可能性があります。
また、大量の変更を一度にマージすると競合が発生しやすくなるため、担当者ごとの作業単位で小まめに統合する方が安全です。
例えば、毎週1回まとめて10人分の変更を統合するよりも、作業完了ごとに確認してマージする方が問題発生時の原因調査も簡単になります。
まとめ
SourceTreeからGitHubのリモートブランチをmasterへマージする場合は、「取り込み先のブランチへ移動する」「対象ブランチをマージする」「プッシュする」という流れで作業します。
競合が発生した場合でも、変更内容を確認して不要なコードを削除し、解決済みとしてコミットすれば統合できます。
Git初心者の場合は、まずテスト用ブランチでマージ操作を経験してから本番ブランチへ反映すると、安全に作業手順を身につけることができます。


コメント