git: マージ

マージ

他のブランチの変更を今の(作業中のブランチ) にとりこむ

マージの形式

git merge <ブランチ名>
git merge <リモート名/ブランチ名>
git merge origin/master

マージの種類

  • Fast Foward: 早送りになるマージ ブランチが枝分かれしてない時,追加したい 変更を含むブランチへポインタを移動させるだけ コミットの親が1つだけ

  • Auto Merge: 基本的なマージ 枝分かれしてる時,新しいコミットファイルを作成し そこへ変更をコピー(統合)してそこにポインタを移動させる コミットが持っている親が複数

  • conflict: 衝突 別々の人が同じ部分を修正したものを統合しようと したときに発生する.

コンフリクトの解決方法

<h1>test</h1>
<p>hello</p>
<<<<<<<<<<<<<HEAD
<p>let's go</p>
======
<p>go home</p>
>>>>>>>>>>>>>feature

コンフリクトの事故を防ぐ

  • 複数人で同じファイルを修正しない
  • pull, mergeをする前に、変更中のファイルをなくしておく
  • pullするときは、pull(ひっぱってきたいブランチ)に移動してpullする (pullは作業中のブランチにもってくるから)

*コンフリクトしてもあわてないでね!