Git :合并分支时遇到问题的解决办法

今天把自己写的项目分支合并到master时,出现以下问题

问题一:

Please enter a commit message to explain why this merge is necessary.

请输入提交消息来解释为什么这种合并是必要的
在这里插入图片描述
git 在pull或者合并分支的时候有时会遇到这个界面。可以不管(直接下面3,4步),如果要输入解释的话就需要:

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

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

  3. 按键盘左上角"Esc"

  4. 输入":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。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/haduwi/article/details/106773777
今日推荐