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是带提交日志的。