在使用git merge时,可能是以下三种模式中的某一种

1.Fast forward
   当待合并的2个branch最近的commit是线性关系时
   或者说,某个branch自上次更新后没有commit信息时
   git则直接移动指针即可,并没有真正的merge操作,也没有对应的merge commit信息
   如下图,合并master和hotfix分支,既是fast-forward模式
  

2.Merge made by recursive
   当要合并的2个branch的最近的commit对应的直接祖先不同时
   git就无法通过简单的移动指针来进行合并
   只能以2个branch的最新commit和他们的共同祖先进行一次merge
   并对应有一个merge commit信息
   如下图,合并master和iss53分支:
  

3.Conflict
   当2个branch都修改了同一个文件的同一部分时
   这时,就会发生冲突,git的自动合并就会失败
   这时,使用git status会看到
  

test.html: needs merge

   需要手工合并冲突后,git add一下,表明冲突修改完了
   然后,再git commit即可