git_merge产生冲突时丢失合并日志或可视化界面没Resolve按钮的解决方法

背景:

  命令行执行merge将功能分支合并主干分支时,产生了冲突,解决了冲突重新add后,提交时发现提交日志为空,hook被拦截了下来。重试reset或者clean后问题依旧存在。
  尝试TortoiseGit可视化界面merge时,变更列表含冲突,但是左下角并非Resolve按钮,而是stash按钮。反复重试几次问题必现。最后一次尝试留意到退出码不是1,而是128 "git did not exit cleanly (exit code 128)"

解决方案1:

  百度说128跟网络或者ssh有关,到那时最近没有修改过密钥,网络问题则不确定,网络能正常连通,show log等能正常使用。
  由于服务器没权限,也大概猜了下应该只是本地git的问题,初步怀疑对象是git的缓存。
  尝试清理缓存,但是清理缓存会很久,可能有20分钟。

git rm --cached -r .

  清理完后保证分支没有受到之前的影响再Reset一下,同时建议pull一次,减少出错的概率。
  此时,再TortoiseGit重新merge就出现Resolve了。

  接着验证下命令行是不是也ok了,Reset后重新用命令行merge,此时git commit是带提交日志的。

posted @ 2022-11-03 11:06  昂流  阅读(539)  评论(0编辑  收藏  举报
//替换成自己路径的js文件 hhttp(s)://static.tctip.com/tctip-1.0.4.min.js