自定义Git二进制合并工具如何设置退出码表示合并成功?
Git Mergetool 自定义工具退出码指南
我来帮你梳理Git对自定义合并工具退出码的判断逻辑,其实核心规则很清晰,只是官方文档没把细节拆解得太细:
退出码 0:这是Git认可的「合并完全成功」信号。如果你的二进制文件合并程序成功处理了所有冲突,生成了无冲突的最终文件,就返回这个码。当
mergetool.<tool>.trustExitCode设为true时,Git看到0就会直接标记冲突已解决,不会再弹出确认提示。退出码 1:这个码表示「合并未完成/存在未解决的冲突」。如果你的程序尝试合并但失败了,或者无法自动处理所有冲突(比如需要用户手动调整后再重新合并),就返回1。此时Git会认为合并任务没完成,即便开启了
trustExitCode,也会提示你确认是否真的解决了冲突,或者是否需要重新运行工具。
另外补充两个小细节:
- Git对非0的退出码(除了1之外的其他码,比如2、3等)的处理逻辑和1一致,都会视为合并失败,触发后续的确认提示。
- 如果你的程序有特殊的错误场景(比如文件损坏、权限问题),返回非0码也没问题,Git都会统一判定为合并未成功,给你机会去排查问题。
总结一下:你的二进制合并程序只要在完全成功合并时返回0,合并失败/需要人工介入时返回非0码(推荐用1),Git就能正确识别并信任你的退出码啦。
内容的提问来源于stack exchange,提问作者Ackdari
相关产品推荐
相关产品推荐

