如何执行git merge --continue时跳过编辑器并沿用原合并信息?
解决Git Merge --continue跳过编辑器的问题
这个问题我之前也踩过坑,git merge --continue确实不支持附加任何参数,不过有两个简单靠谱的方法能实现你的需求:
方法一:用git commit --no-edit替代git merge --continue
当你手动解决完所有冲突,并且用git add把修改后的文件暂存之后,直接执行:
git commit --no-edit
原理很简单:Git在合并冲突触发的时候,已经把你最初通过-m指定的合并信息存在了本地的COMMIT_EDITMSG文件里,git commit --no-edit会直接读取这个预存的信息完成提交,完全跳过编辑器弹窗,效果和正常执行git merge --continue完全一致。
方法二:临时指定Git编辑器为无操作命令
如果你更习惯用git merge --continue的命令写法,可以临时给Git指定一个“假编辑器”:
GIT_EDITOR=true git merge --continue
这里的true是一个系统命令,执行后会直接返回成功状态。Git尝试打开编辑器时调用这个命令,就相当于直接确认使用现有的合并信息,不会弹出任何编辑器窗口。
为什么你之前的命令会报错?
你尝试的
git merge --continue --no-edit和git merge --continue -m "BLAH"之所以报错,是因为--continue这个子命令的设计逻辑就是不接受任何额外参数。它的作用仅仅是恢复之前中断的合并流程,而提交信息的编辑控制是交给后续的commit环节来处理的,所以没法直接在--continue后面加编辑相关的参数。
内容的提问来源于stack exchange,提问作者eftshift0
相关产品推荐
相关产品推荐

