在.gitignore中,我有一条排除路径的规则 settings.php
但是,必须忽略该规则(文件必须包含在git中),但由于特殊原因(.gitignore文件经常从外部重置为默认值)我不想更改.gitignore本身,而是覆盖它通过在core.excludesfile文件中设置反规则.
所以在相关的core.excludesfile文件中我把:!settings.php
覆盖上面的规则.但它不起作用.我怀疑.gitignore中的规则优先于具有排除项的全局文件中的规则(这是我理解的方式https://www.kernel.org/pub/software/scm/git/docs/gitignore.html).
有没有办法通过core.excludesfile或其他地方的规则覆盖.gitignore中的规则集?
Sam*_*ham 14
是! 事实证明,在将文件添加到存储库时,您可以强制它覆盖.gitignore:
git add -f <filename>
or
git add --force <filename>
Run Code Online (Sandbox Code Playgroud)
资料来源:https://www.kernel.org/pub/software/scm/git/docs/git-add.html
有一种简单的方法可以覆盖.gitignore文件中的规则-只需在更深的级别上制作一个新的.gitignore文件。例如,在我的情况下,通过将“!settings.php”添加到settings.php所在文件夹中的新.gitignore文件中,我能够使git忽略我的settings.php文件。
对于那些不介意修改.gitignore
文件的人,您可以通过!
在文件名或文件夹前面添加来覆盖规则。使用*
选择一个文件夹中的文件,并**
在递归子文件夹选择文件。
覆盖特定文件的忽略:
!file.js
Run Code Online (Sandbox Code Playgroud)
覆盖对目录中文件的忽略:
!assets/*
Run Code Online (Sandbox Code Playgroud)
覆盖对目录及其子目录中文件的忽略:
!assets/**
Run Code Online (Sandbox Code Playgroud)