我该如何调试 git 的偷偷合并?

我该如何调试 git 的偷偷合并?

我有一个~/.gitconfig文件

[branch]
    autosetuprebase = always

并且它运行良好很长一段时间,最后检查了 git-2.28.0 和 git-2.28.0.windows.1

但是,当使用相同的文件(复制过来)时git-2.24.3 (Apple Git-128),只要我运行git pull它,它就会打开我的文本编辑器并显示合并消息(这有时会让我措手不及,最后我只能退出编辑器,从而完成该死的合并)。如果我在工作副本上测试设置,它会显示预期值:

$ git config branch.autosetuprebase
always

显然,我的设置有些地方无法正常工作,或者该特定 git 版本存在问题。我该如何调试问题所在?我的目标是,除非我主动要求,否则永远不要看到自动合并提交建议git merge

答案1

如果您想弄清楚发生了什么,我首先会检查是否git config -l提供了您期望的值。例如,有人可能还设置了branch.autosetupmerge,或者其他选项可能会造成干扰。

如果您不确定某个配置选项是否会造成干扰,请尝试设置HOME到其他目录并.gitconfig在该目录中创建一个仅包含该选项的文件。然后您可以.gitconfig在调试时修改该文件以查看它是否会造成干扰。

然后,我会创建一个新的分支,git branch跟踪另一个分支,然后再次转储输出,以git config -l确保跟踪分支具有适当的branch.<name>.rebase设置。如果没有,那么您就知道有问题,使用自定义.gitconfig可以帮助找到罪魁祸首。

您可能还想尝试使用 Homebrew 的 Git。Apple 对其 Git 进行了修补,因此它可能在某些方面出现问题。该版本应该支持该选项,因为它是在 2.20 中添加的,但它可能在该特定版本中出现问题。

相关内容