git mergeを使ってブランチをマージする方法【初心者向け】

初心者向けにgit mergeを使ってブランチをマージする方法について解説しています。マージという単語自体聞いたことがある人もいるかもしれませんが、開発現場では必ず使用します。実際にコマンドを書きながら説明しているので、ぜひご覧ください。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が1,000以上あります。

Git(ギット)はとても便利なバージョン管理システムです。

今回は、Gitの使用においても重要なgit mergeの使い方を紹介していきたいと思います。

同様に役立つGithubの使い方も解説しているので、合わせてご覧ください。

 

なお本記事はTechAcademyのオンライン完結のGitHub講座のカリキュラムをもとに執筆しています。

 

20160620

 

田島メンター!!gitでブランチを切ったんですけど、これをmasterに反映させるのってどうやるんですか〜?

20163020-2

 

それならgit mergeでやるんだよ。

 

20160620

 

どうやるんですか〜?

 

 

git mergeとは

各ブランチで開発された作業はそのままだと、マスターのブランチには反映されません。

そのままだとせっかく開発した機能が使用できないという事態になってしまいます。そうならないために、マスターブランチに各ブランチで編集した作業を反映させるためのコマンドがあります。それがgit mergeです。

今回はそんなgit mergeを実際に使用して見たいと思います。

 

実際にgit mergeを使用してみよう

それでは実際にgit mergeを使用して見ましょう。

今回はsampleというディレクトリ内で、「sample_branch」というブランチを作成し、そのブランチで「sample.html」を作成し、masterブランチにその変更をマージするという方法で行いたいと思います。

デフォルトの状態だとブランチも何もない状態なので、master.htmlというファイルを作成してコミットしましょう。するとmasterというブランチが作成されます。

次にsample_branchというブランチを作成し、以下のように打ち込みブランチを移動してください。

git checkout sample_branch

git12_01

次にsample.htmlというファイルを作成しましょう。

そしてそのファイルをコミットしてください。

最後にマスターブランチに移動し、git merge sample_branchと打ち込んでください。

git merge sample_branch

git logを確認して以下のようになっていると成功です。

git12_02

 

[PR] 現役エンジニアに質問しながらプログラミングを習得する学習方法とは

git mergeを使用する場合の注意点

ここでは、git mergeを使用する場合の注意点について確認します。

 

コミットが済んでいないファイルが残っている状態で git merge しない

コミットが済んでいない状態で git merge を行うと、ブランチの変更の取り込み漏れの原因になります。全てコミットが済んでいる状態で git merge するようにしましょう。

コミットが済んでいるかどうかの確認は、 git status コマンドで確認できます。

git status

実行結果は以下のようになります。コミットが済んでいないファイルがあると、以下のように表示されます。

 

コミットが済んでいないファイルが残っている状態で git checkout しない

こちらは git merge の前段階の git checkout についてとなりますが、merge と同様に、コミットが済んでいない状態で checkout するのもブランチの変更の取り込み漏れの原因につながりますので辞めましょう。

コミットが済んでいない状態で checkout すると、対象のファイルが表示されます。

git checkout branch1

実行結果は以下のようになります。コミットが済んでいないファイルがあると、以下のように表示されます。

 

マージで衝突が発生した場合

同じファイルを別々の開発者が修正し、git merge を行うと、修正内容によっては衝突が発生する場合があります。

git merge

衝突が発生した場合、実行結果は以下のようになります。CONFLICTと表示されているのが分かりますね。

この場合、衝突したファイルを修正した後、git add、git commit の順に対応します。

git add hello.html
git commit -m "hello.htmlの衝突を修正"

 

マージを元に戻す方法

ここでは、マージを元に戻す方法をご紹介します。

上記のように、git merge により衝突が発生しても、修正方法はありますが、マージ自体を元に戻したい場合もあります。その場合、マージ後にコミットしたか、していないかによりコマンドが異なります。

マージした後、未だコミットしていない場合

git reset --hard HEAD

マージした後、コミットも行っている場合

git reset --hard ORIG_HEAD

 

まとめ

今回はgit mergeについて解説していきました。

git mergeを使用すれば簡単にブランチの変更を取り込むことができます。ぜひ覚えておくようにしましょう。

また、現在の状況が分からなくならないよう、git status コマンドなどでしっかりと状況を確認してから git merge を使用するようにしましょう。

 

20160620

 

masterに反映することができました♪

 

20163020-2

 

ブランチを切った時はmergeしないと反映されないから、覚えておかないとね♪

 

20160620

 

はい♪

 

 

[お知らせ]TechAcademyでは自宅で学べるオンライン完結のGitHub講座を開催しています。わからないことをチャットで質問すると、現役エンジニアのメンターが毎日すぐに回答します。