git pull --- Please enter a commit message to explain why this merge is necessary

背景

有时候用命令行执行git pull会弹出一个框,让开发人员去填写 commit message

前提

git pull = git fetch + git merge , 这个问题出现在git merge阶段

 

原因

对于git 来说,merge的时候对于某一个文件会出现四种情况:

  1. 没有分支对这个文件进行修改
  2. 只有一条分支进行了修改,此时git判断没有发生冲突
  3. 两条分支都进行了修改,但是修改记录没有发生重叠,git判断没有发生冲突
  4. 两条分支都进行了修改,并且修改记录发生了重叠,git判断发生了冲突

   git判断是否冲突是有它的一套逻辑的,可以去百度深入了解

弹出这个框是因为出现了第3种情况。这个时候git会弹出这个框提示你此文件远程也有修改但是和本地的修改没有重叠,接着git会完成自动帮你merge,并且自动帮你add,自动帮你commit这一系列操作,弹出这个就是让你填写一些commit 信息。

 

解决

  出现这种情况我们可以当做没有任何冲突,可以不管(直接下面3,4步),如果要输入解释的话就需要:

    1.按键盘字母 i 进入insert模式

    2.修改最上面那行合并信息,可以不修改

    3.按键盘左上角"Esc"

    4.输入":wq",注意是冒号+wq,按回车键即可

通过git log可以查看刚刚提交的commit message

原文地址:https://www.cnblogs.com/qingshan-tang/p/12672663.html