如何告诉 Git 使用与“.gitignore”不同的 gitignore 文件?

Dou*_*las 5 git gitignore

我可以告诉 Git Git 存储库在哪里--git-dir。我可以告诉 Git 工作树在哪里--work-tree。我如何告诉 Git gitignore 文件在哪里?

Q. 为什么我想做这样的事情?

A. 对于一些工作树,我有两个不同的 Git 存储库。一种是在 的标准位置.git。我用于普通版本控制的这个存储库。另一个存储库在.git.sync. 我使用这个存储库在计算机之间进行定期自动同步。即,它是我自己的小 Dropbox 克隆,用 Git 和一个定期运行的小脚本实现。

理想情况下,我可以告诉 Git.gitignore.sync用于.git.sync存储库,而不是让 Git 使用.gitignore它用于正常版本控制的相同内容。

问:我为什么不直接使用 Dropbox?

A. 它不同步符号链接。糟糕的 Dropbox!

Sri*_*lan 4

您可以使用core.excludesfile指定新的忽略文件。默认情况下,这只会影响当前存储库;--global如果您想更改默认值,可以使用该选项。

git config core.excludesfile ".new_gitignore"
Run Code Online (Sandbox Code Playgroud)

编辑1

AFAIK,.gitignore无法禁用。并且它优先于.git/info/excludescore.excludesfile。我能想到的唯一方法是使用过滤器进行一些黑客攻击。这个答案很好地解释了过滤器的使用。