2

我不清楚完成导致冲突的合并所需的 Git 命令的正确顺序。我知道一种方法是遵循被拒绝的合并,例如

git mergetool
# Then once everything has been fixed
git add ??
git commit -m "Some message"

但我不清楚该git-add命令究竟应该包含什么,以确保只有我最初为被拒绝的合并暂存的文件最终被提交,并且只有那些文件被提交。

4

1 回答 1

3

git-mergetool通常会在冲突解决后自动暂存文件。您将不需要手动运行git-add.

但是,为了使用各种工具,将尝试通过检查修改日期git-mergetool来验证文件是否已更新(请参阅check_unchanged() )。如果文件已被修改,则它将检查来自合并工具的返回码。

一些合并工具可能不会返回正确的退出代码(如果合并“成功”,则返回 0),因此 git 还提供了一个配置选项mergetool.<tool>.trustExitCode以防不可信。如果设置为false,则 git 将始终询问您合并是否成功。

总之:

  1. 即使不需要更改,您的合并工具也应在合并后将文件保存到磁盘(这是不可能的,因为它不会是合并冲突)。
  2. 如果您不信任合并工具的退出代码,可以将该trustExitCode选项设置为 false。

在实践中,我建议使用 git 现在本机支持的合并实用程序之一。您可以在此处获取这些列表。如果您使用这些工具之一,除了配置 git 来使用它之外,您不需要任何其他设置,例如:

git config --global merge.tool p4merge

注意:您可能会在网络上找到很多关于设置这些工具的过时文章。例如,我最喜欢的合并工具 p4merge最初并不受 git 原生支持,需要进行一些手动配置。对于最新版本的 git,这不再是必需的。

于 2013-01-29T06:04:04.020 回答