Git全局忽略不工作
我已经创build了文件.gitignore_global
并把它放在我的git安装目录中。 当我运行命令:
git config --global core.excludesfile ~/.gitignore
忽略文件中的规则不适用于我的提交。
当我重命名文件.gitignore
并将其放入我的项目根目录时,规则适用。
这里有什么问题?
也许你需要这样做:
git config --global core.excludesfile ~/.gitignore_global
喝点咖啡
以为我会在这个芯片。 全局忽略文件似乎不起作用还有另外一个原因。 这是我不认为已经在以前的答案涵盖的东西。 这是非常明显的 – 当然 – 这很容易错过。
就是说,git 只会忽略新的文件 。 如果这个文件已经被git跟踪了,那么git当然不会忽略它! 所以任何gitignore
或exclude
文件中的模式都不适用 。
这就说得通了。 为什么会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
在我改变它之后,一切都按原样进行。