从我包含在“.git/info/exclude”文件中的合并中排除文件的最佳方法是什么?

What's the best way to exclude files from a merge that I have included in my ".git/info/exclude" file?

我在“.git/info/exclude”文件中指定了一些文件,这样当我进行提交时,这些文件不会在提交中 staged/included。我想在合并时保留这些文件的本地版本。我已经设置了一个 "ours" 合并驱动程序并适当地设置了“.git/info/attributes”文件(我认为);但是,我认为驱动程序没有被使用,因为我认为 git 在尝试合并时没有检测到这些文件中的任何冲突。

这是我的“.git/info/exclude”文件(这给了我我想要的 - 这些文件永远不会上演):

/IDWA.Client/dmsConfig.json
/IDWA.Server.AppServer/client-config*.*
/IDWA.Server.AppServer/dmsConfig.json

这是我的“.git/info/attributes”文件(它似乎根本没有做任何事情;同样,我认为是因为 git 在尝试合并时没有检测到任何冲突) :

/IDWA.Client/dmsConfig.json merge=ours
/IDWA.Server.AppServer/client-config*.* merge=ours
/IDWA.Server.AppServer/dmsConfig.json merge=ours

驱动配置:

git config --global merge.ours.driver true

最后……

我只想能够执行 git 拉取操作,而不必担心这些文件。

Git 竭尽全力告诉您这些文件是来自其他分支的任何文件的一部分,如果您选择继续操作,您的文件将被覆盖....所以,git 无法猜测您在这种情况下想要做什么.. 如果您 绝对 确保文件不应该是项目的一部分全部,然后转到另一个分支并从那里删除它们,然后再次尝试合并(顺便说一下......我正在以非常快的方式写这篇文章,因为我不知道发生了什么事的所有背景...... . 但从其他分支删除这些文件可能会对您产生影响,所以要小心)。

Here's my ".git/info/attributes" file (which doesn't appear to be doing anything at all;

这仅在合并 冲突.

的情况下有效

由于这些文件已经被跟踪,尝试:

git update-index --skip-worktree -- a file

参见“Git - Difference Between 'assume-unchanged' and 'skip-worktree'”。