Git全局忽略不工作

我已经创build了文件.gitignore_global并把它放在我的git安装目录中。 当我运行命令:

 git config --global core.excludesfile ~/.gitignore 

忽略文件中的规则不适用于我的提交。

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

这里有什么问题?

也许你需要这样做:

 git config --global core.excludesfile ~/.gitignore_global 

喝点咖啡

以为我会在这个芯片。 全局忽略文件似乎不起作用还有另外一个原因。 这是我不认为已经在以前的答案涵盖的东西。 这是非常明显的 – 当然 – 这很容易错过。

就是说,git 只会忽略新的文件 。 如果这个文件已经被git跟踪了,那么git当然不会忽略它! 所以任何gitignoreexclude文件中的模式都不适用

这就说得通了。 为什么会git想忽略它已经跟踪的文件的修改? 如果文件被忽略,你必须先告诉git不要跟踪它,然后git忽略它,如手册中所述。 有关如何查找文件的信息, 请参阅此答案 。

这一切都让我问,有没有可能忽略跟踪文件的变化? 再次,git交付。 这个答案; Git:忽略跟踪的文件给我们的命令:

git update-index --assume-unchanged file

最后,这里有一些关于debugginggit ignore的附加信息。

gitignore(5)手册页告诉我们:

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

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

接下来,这真的很有用,就是从1.8.2开始,我们现在有了一些优秀的debugging工具。 看一下:

Git学会更好地忽略 – 1.8.2中的新内容

这显示了如何使用新的check-ignore标志来validationgit是否成功地忽略了你的模式,例如

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

我发现当我这样定义它时:

 git config --global core.excludesfile $HOME/.config/git/ignore 

它没有工作。 将其更改为不使用$ HOMEvariables,如下所示:

 git config --global core.excludesfile ~/.config/git/ignore 

它立即开始工作。 希望这可以帮助别人。

供参考:

 $ git --version git version 1.7.10.2 (Apple Git-33) 

该文件必须在您的主目录中。 在Windows上,通常意味着:C:\ documents和settings \ [user]。

在Linux上它是:/ home / [user]

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

的价值:

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

所以如果你创build一个$HOME/.config/git/attributes文件,你甚至不需要设置你的core.excludesfile设置。

我有这个问题,因为我最初叫'git config core.excludefiles'没有 – 全局和错误的值,因此它已经存储在本地属性。 看起来地方财产隐瞒了全球的(有正确的价值),完全忽略了它。

另一个难以追踪的原因.gitignore(_global)似乎不工作可能是领先的空间在线。 该文件不能容忍领先的空间。 所以确保文件的每一行都没有,除非是空行。 我花了一段时间才弄清楚。

只要加上我的两分钱。

我最近犯了一个错误,运行下面的命令git config core.excludesfile tags这改变了当前版本库中的本地文件的excludesfilepath,并且这个configuration已经被写入到.git/config下的本地configuration文件,所以要修复我刚刚打开.git/config文件,并删除了行excludesfile tags ,一切都恢复正常。

我遇到了同样的问题(在Windows上)。 我结束了检查我的~/.gitconfig文件,发现我的excludesfile被设置为:

 excludesfile = C:\\Users\\myUserName\\Documents\\gitignore_global.txt 

但应该是:

 excludesfile = C:\\Users\\myUserName\\.gitignore_global 

在我改变它之后,一切都按原样进行。