GitブランチとGitマージ:ブランチの基本操作とマージ操作について

スポンサーリンク

この記事は、Gitのブランチ管理の基本操作について解説します。ブランチの一覧表示や作成、切り替え、マージの方法を説明します。ブランチのマージ時に発生する競合の解決方法についても述べています。競合解決にはマージツールの使用が推奨です。その設定方法も紹介しています。不要になったブランチの削除方法についても触れています。この記事を通じて、Gitのブランチ管理とGitのマージ操作に関する知識とスキルを身につけることができます。

スポンサーリンク

ブランチの一覧表示 (git branch)

git branchでブランチの一覧を表示できます。

ブランチの作成 (git branch <ブランチ名>)

git branch <ブランチ名>でブランチの作成を行うことができます。

ブランチの切り替え (git checkout <ブランチ名>)

git checkoutでブランチの切り替えを行うことができます。

また、git switch -c <ブランチ名>でブランチを作成と切り替えを同時に行うことができます。

現在いるブランチにマージ先のブランチをマージ (git merge <マージ先のブランチ名>)

git merge <マージ先のブランチ名>でブランチをマージすることができます。
競合が発生した場合は競合を解決しなければなりません。以下は手動で解決する方法の一つの例になります。
ただし、基本的には次で紹介するgit mergetoolを使った競合の解決の方がおそらく簡単だと思います。

競合の解決を中止(git merge --abort)

競合の解決の中止を説明するためにマージする直前のコミットにコミットを戻したいと思います。
この方法でコミットを戻すとマージしたコミットに戻ることはできなくなるため、コミットの破棄と同等になり、git gcを使ったときにそのデータは削除される対象になるでしょう。

同じようにブランチを指定してマージします。マージの競合はgit merge --abortで競合の解決を中止することができます。

競合内容をマージツールを使って解決(git mergetool)

git mergetoolを使うと競合内容を設定したマージツールで解決できます。
設定は

で設定できます。必要なら--globalオプション等を使います。
または、設定を利用せずにgit mergetoolに-tオプションでツールを指定することもできます。

git mergetoolを使うとバックアップファイルとして.origがついたファイルが作成されます。バックアップを作成したくない場合は

にします。

例ではマージツールにvimdiffを設定し、バックアップは作成しない設定をしています。vimdiffはかなり癖の強いマージツールなのでもし設定を行うならもっと使いやすいマージツールを設定したほうが良いかもしれません。

マージする例は以下のようになります。

マージツールがPATHに設定されていない場合やコマンドの引数を指定したい場合は

の設定が参考になります。詳しくは

で確認できます。

マージツール (vimdiff,opendiff,WinMerge等)

マージツールは外部ツールなので、様々な選択肢があります。ここでは、vimdiffを利用しましたが、LinuxではGUIのマージツールとしてMeldがあります。また、MacOSではFileMerge(opendiff)が、WindowsではWinMergeがGUIのマージツールとしてあります。

あらかじめ使いやすいマージツールを設定しておくとマージ作業が楽になるでしょう。

ブランチの削除 (git branch -d <ブランチ名>)

マージ等でブランチが必要なくなったら、git branch -d <ブランチ名>でブランチを削除できます。