<前回> SourceTreeとBitbucketでGitを始める <ブランチ編>

前回はブランチについてと、終わりらへんでマージについて軽く説明しました

今回は、subブランチの内容をmasterブランチにマージ(統合)していきます

              スポンサーリンク
               


前回の続きからなので、画面はこうなっているかと思います
無題 
subブランチがmasterブランチより1つ進んでいますね

それでは早速、subブランチの内容をmasterブランチのデータにマージしようと思います

masterにsubの内容を追加するので、masterをチェックアウトしてください

チェックアウトされたことを確認したら、メニューからマージを選択してください
無題

選択すると以下のような画面になると思います
無題
この画面ではマージする対象を選択します

マージする対象はsubブランチなので、subブランチを選択しましょう
無題 
subブランチを選択したら、右下のOKを押しましょう

これでsubの内容がmasterにも反映されました
無題 
このままsubのブランチを使って、再度機能の追加などを行うこともできますし、subブランチが不要になったなら削除することもできます

削除は、ブランチ→ブランチを削除、で削除したいブランチを選択してブランチを削除をクリックすれば消すことができます


次に競合について説明していきます

マージする時にエラーが出る場合があります、それを競合と呼びます

競合が起きる原因は、masterとsubの同じデータが共に変更されていた場合です

これから実際に競合を起こし、その解決方法を説明していきます

まずmasterのsubが同じ位置にいることを確認してください
無題
もし位置が違う場合は、1回subブランチを削除にmasterブランチからsubブランチを作り直しましょう

それではまず最初にsubをチェックアウトし、メモ帳に変更を加えてコミットしてください
無題


次にmasterをチェックアウトし、同じくメモ帳を変更しコミットしてください
無題




こうすることで以下のようにmasterとsubのブランチが分岐しているかと思います
無題 

それでは競合を起こすためにmasterにsubをマージしてみましょう
無題 

これでマージすると、以下のようなエラーが出ると思います
無題

ブランチはこのようになっているかと思います
無題 
コミットされていない変更があります、で止まってしまっています、このコミットされていない変更がありますをクリックすると下の方にコミット時に表示される画面が表示されます

そこのアイコンが競合を意味する ! マークになっていると思います、これを解決できるまでコミットすることができません

まずはどこが競合しているのかを見てみましょう

競合している部分は右側の画面で確認することができます
無題 
<<<<<<< HEADから=======までが軸になっているブランチの内容です、ここではmasterブランチを指します
=======から>>>>>>> subまでがその他のブランチになります、ここではsubブランチを指します

この中に書かれている部分が競合している部分になります

それでは競合を直していきましょう、競合を直す方法は3つあります
・軸ブランチに合わせる
・軸ブランチではない方に合わせる
・手作業で直す
の3つになります、今回は軸ブランチに合わせる方法で直したいと思います

やり方は簡単で競合しているデータを右クリックし競合を解決→自分(mine)の変更内容で解決をクリックするだけです
無題 

するとこのようなウィンドウが出てくると思いますがOKを押してもらって大丈夫です
無題


手作業で直した場合は、競合の解決→解決とマークを選択することでコミット可能になります


これで解決です

競合の解決方法を説明しましたが、そもそも競合しないように管理するのが一番だと思います、個人開発なら競合しても今回みたいにどちらかとブランチに合わせて解決すれば良いですが、チーム開発ではあまりやらない方が良いと思います


マージについては以上になります

それではまた次回

<目次> Gitを使ってUnityプロジェクトを管理する
<前回> SourceTreeとBitbucketでGitを始める <ブランチ編>
<次回> SourceTreeとBitbucketでGitを始める <リモートリポジトリ編>



このエントリーをはてなブックマークに追加      


スポンサーリンク