我不清楚完成导致冲突的合并所需的 Git 命令的正确顺序。我知道一种方法是遵循被拒绝的合并,例如
git mergetool
# Then once everything has been fixed
git add ??
git commit -m "Some message"
但我不清楚该git-add
命令究竟应该包含什么,以确保只有我最初为被拒绝的合并暂存的文件最终被提交,并且只有那些文件被提交。
git-mergetool
通常会在冲突解决后自动暂存文件。您将不需要手动运行git-add
.
但是,为了使用各种工具,将尝试通过检查修改日期git-mergetool
来验证文件是否已更新(请参阅check_unchanged() )。如果文件已被修改,则它将检查来自合并工具的返回码。
一些合并工具可能不会返回正确的退出代码(如果合并“成功”,则返回 0),因此 git 还提供了一个配置选项mergetool.<tool>.trustExitCode
以防不可信。如果设置为false
,则 git 将始终询问您合并是否成功。
总之:
trustExitCode
选项设置为 false。在实践中,我建议使用 git 现在本机支持的合并实用程序之一。您可以在此处获取这些列表。如果您使用这些工具之一,除了配置 git 来使用它之外,您不需要任何其他设置,例如:
git config --global merge.tool p4merge
注意:您可能会在网络上找到很多关于设置这些工具的过时文章。例如,我最喜欢的合并工具 p4merge最初并不受 git 原生支持,需要进行一些手动配置。对于最新版本的 git,这不再是必需的。