GitHubのマージに関して、簡単にまとめてみました。
##Auto Merge
このAuto Mergeが最も一般的なマージ方法となります。
これは別々のブランチでそれぞれが開発している時に、別ブランチの変更内容を自分のブランチに取り込むマージとなります。
上の図は、AのコミットからBとB'のコミットに分岐してそれぞれが開発していると想定しています。
ここでmasterブランチの変更内容を取り込む場合、「git merge master」コマンドにて、新しくCコミットが作成されます。
このCコミットは、Bコミットの内容をベースにして、B'コミットの内容を取り込んでいることになります。
特徴として、CコミットはBコミットとB'コミットの2つを親ファイルとして持っていることです。
##Fast Foward merge
これは先ほどと違って分岐していない時のマージとなります。
元々開発をしていたAコミットに、新しくBコミットをマージして、変更内容が統合される形です。
するとAコミットを指していたmasterブランチはBコミットを指すようになります。
##conflict merge
conflictは衝突するという意味です。
別々のコミットで、同箇所を変更や追記してマージ場合に、Git側はどっちの方を正と判断すれば良いか分かりません。
このコンフリクトが発生した際は、該当のファイルを開いて正しい記述に修正する必要があります。