Git全局忽略不工作

use*_*954 75 git

我已经创建了该文件.gitignore_global并将其放在我的git安装目录中.当我运行命令时:

git config --global core.excludesfile ~/.gitignore
Run Code Online (Sandbox Code Playgroud)

忽略文件中的规则不会应用于我的提交.

当我重命名文件.gitignore并将其放入我的项目根目录时,规则确实适用.

这有什么不对?

Cha*_*esB 152

也许你需要这样做:

git config --global core.excludesfile ~/.gitignore_global 
Run Code Online (Sandbox Code Playgroud)

还有一些咖啡.

  • 是的,`gitignore`文件仅适用于未跟踪的文件,而不适用于之前添加的文件 (2认同)

Max*_*eod 70

以为我会参与其中.全局忽略文件似乎无法正常工作的另一个原因.这是我认为在早期答案中没有涉及到的内容.这是非常明显的 - 当然 - 很容易错过.

是的,git 只会忽略新文件.如果文件已被git跟踪,那么当然git不会忽略它!因此,任何gitignoreexclude文件中的任何模式都不适用.

那讲得通.为什么git想忽略对已经跟踪的文件的修改?如果要忽略该文件,则必须先告诉git不要跟踪它,然后git忽略它,如手册中所述.有关如何解开文件的信息,请参阅此答案.

这一切都让我问,是否可以忽略对跟踪文件的更改?再次,git提供.这个答案; Git:忽略跟踪文件为我们提供命令(替换file为您要忽略的文件):

git update-index --assume-unchanged file

最后,这里有关于调试git ignore的一些额外信息.

gitignore(5)手册告诉我们:

用户希望Git在所有情况下忽略的模式(例如,由用户选择的编辑器生成的备份或临时文件)通常会进入用户的〜/ .gitconfig中的core.excludesfile指定的文件中.其默认值为$ XDG_CONFIG_HOME/git/ignore.如果$ XDG_CONFIG_HOME未设置或为空,则使用$ HOME/.config/git/ignore.

所以,这是新的,取代了之前~/.gitignore_global提到的.

接下来,这非常有用,从1.8.2开始,我们现在有了一些出色的调试工具.看一下:

Git倾向于忽视 - 1.8.2中的新功能

这显示了如何使用新check-ignore标志来验证git是否成功忽略了您的模式,例如

git check-ignore bin/a.dll --verbose

  • `git update-index --assume-unchanged file`正是我想要的,谢谢! (6认同)

XP8*_*P84 11

我发现当我定义global core.excludesfile这样的时候:

git config --global core.excludesfile $HOME/.config/git/ignore
Run Code Online (Sandbox Code Playgroud)

它不起作用.将其更改为不使用$HOME变量,如下所示:

git config --global core.excludesfile ~/.config/git/ignore
Run Code Online (Sandbox Code Playgroud)

它立即开始工作.希望这有助于其他人.

供参考:

$ git --version
git version 1.7.10.2 (Apple Git-33)
Run Code Online (Sandbox Code Playgroud)


Von*_*onC 6

注意:启动git1.7.12(2012年8月):

的价值:

  • core.attributesfile 默认为$ HOME/.config/git/attributes和
  • core.excludesfile$HOME/.config/git/ignore这些文件存在时分别默认为 .

因此,如果您创建$HOME/.config/git/attributes文件,则甚至不必设置您的core.excludesfile设置.