今回はmergeについてまとめてみますね。
Table of Contents
結論
簡単にいうとmergeというのは他の人や作業ブランチの変更内容が現在自分のいるブランチに反映させることになります。
ということでもう少し詳しく説明していきますね!
コマンドの使い方
//ローカルの別リポジトリから自分のいるブランチに反映させる
git merge ブランチ名
//リモートのリポジトリを自分のいるブランチに反映させる
git merge リモート名/ブランチ名
Code language: JavaScript (javascript)
リモートのリポジトリからもブランチの内容を反映させることもできます。
さて、このコマンドを打つのはこれだけで大丈夫なんですが、注意するべきことがあります。
それはコンフリクトが起きた時です。
ではそちらの説明していきます。
コンフリクトとは
コンフリクトとは、同じ場所(ファイル)に違った変更が行われた場合です。
mergeした際に、同じファイルに違った変更点があった時Gitはどちらのファイルを優先したら良いのかわからないわけです。
なのでコンフリクト(衝突)が起きます。
コンフリクトが起きるとそれに応じて対応しないといけません。
コンフリクトの対処方法
<<<HEAD
xxxxxxxxxxxxxxxx
=====================
bbbbbbbbbbbbbbbb
>>>>feature
Code language: JavaScript (javascript)
↑コンフリクトが起きた際には上記のようなエラーが出ます。
HEADというのが現在いるブランチの内容です。
featureというのが今回取り込むブランチ名です。
この二つのブランチで、「違った変更が行われているよー」って教えてくれているわけです。
さて、どのようにして修正するのかというと。。。
git status
まずはgit statusコマンドを使ってどのファイルでコンフリクトが起きているのかをチェックします。
そしてコンフリクトが起きているファイルには先ほどのようなエラー(記号?)があるので、そこの修正をおこないます。
修正を行って本来コミットしたい内容に書き換えましょう。(記号なども削除する。)
修正が完了したら、
git add 対象ファイル
git commit
上記コマンドを打ってコミットさせましょう!
これでコンフリクトの解消が完了しました。
まとめ
とにかく触っていくことが大切だと思う日々…
結局触ろう。