今天把自己写的项目分支合并到master时,出现以下问题
问题一:
Please enter a commit message to explain why this merge is necessary.
请输入提交消息来解释为什么这种合并是必要的
git 在pull或者合并分支的时候有时会遇到这个界面。可以不管(直接下面3,4步),如果要输入解释的话就需要:
-
按键盘字母
i
进入insert模式 -
修改最上面那行黄色合并信息,可以不修改
-
按键盘左上角
"Esc"
-
输入
":wq",
注意是冒号+wq
,按回车键即可
问题二:
解决办法:
第一步:回到合并前状态
git merge -abort // 中止合并
rm .git/.MERGE_MSG.sw* //删除 vim 非正常关闭产生的文件
git merge -abort // 中止合并
rm .git/.MERGE_MSG.sw* //删除 vim 非正常关闭产生的文件
第二步:重新合并
合并提交信息页面,使用 :wq!
或者 :q!
正常退出 VIM
,就能正常合并。
PS: 如果 .git/MERGE_* 文件中 只有 MERGE_MSG 文件的话,不用执行 git merge -abort ,直接删除 .MERGE_MSG.sw* 文件就好。
其实就是两个分支在合并的时候合并文件非正常退出,或者合并文件正在被另一个程序修改(换句话说就是别人也在执行两个分支合并这件事),我觉得最佳方案是,先终止合并,删除 vim 非正常关闭产生的文件,询问团队内是否有人在执行合并,如果没人,此时再重新执行合并。
问题三:
fatal: You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you
解决办法:
保留本地的更改,中止合并->重新合并->重新拉取
git merge --abort //中止合并
git reset --merge //撤销合并
git pull //拉去代码
问题四:
解决办法:
git reset --hard head //回退版本信息
该命令是回退版本信息,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^, 上上一个版本就是HEAD^^, 当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。