是否可以将.gitignore
文件添加到.gitignore
本身?
.gitignore
虽然不起作用
我不想在编辑过的文件中看到它
答案 0 :(得分:119)
.gitignore
文件的目的是防止在项目上进行协作的每个人意外地提交项目中的某些公共文件,例如生成的缓存文件。因此,您不应忽略.gitignore
,因为它应该包含在存储库中。
如果您想忽略一个存储库中的文件但又想避免提交忽略列表(例如个人文件),可以将它们添加到该存储库中的.git/info/exclude
。
如果要忽略计算机上每个存储库中的某些文件,可以创建文件~/.gitignore_global
,然后运行
git config --global core.excludesfile ~/.gitignore_global
答案 1 :(得分:26)
.gitignore可以忽略自己如果它从未被检入过:
mhaase@ubuntu:~$ git --version
git version 1.7.9.5
mhaase@ubuntu:~$ git init temp
Initialized empty Git repository in /home/mhaase/temp/.git/
mhaase@ubuntu:~$ cd temp
mhaase@ubuntu:~/temp$ touch .gitignore foo bar baz bat
mhaase@ubuntu:~/temp$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# bar
# bat
# baz
# foo
mhaase@ubuntu:~/temp$ echo "foo" >> .gitignore
mhaase@ubuntu:~/temp$ echo ".gitignore" >> .gitignore
mhaase@ubuntu:~/temp$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# bar
# bat
# baz
nothing added to commit but untracked files present (use "git add" to track)
如果您签入.gitignore(在您告诉它忽略自己之前),那么它将始终以git状态显示,即使您稍后修改它以忽略它自己。
答案 2 :(得分:16)
这并不是一个很好的理由。如果您只想为克隆忽略文件,请将它们添加到.git / info / exclude,而不是.gitignore
答案 3 :(得分:1)
是的,你可以;你仍然可以在编辑过的文件中看到它,因为它仍然由git跟踪,而git跟踪的文件总是被标记为已修改,即使它们位于.gitignore中。所以只需untrack即可。
但为什么不提交或重置你拥有的更改?这是一种更好的方法将其从状态中删除...另外要注意,你的repo的任何新的克隆都必须添加它的.gitignore
,这可能很烦人。
答案 4 :(得分:1)
在gitignore文件中输入.gitignore
后,请尝试以下操作,
git rm -r --cached .
git add --all
git commit -m "ignoring gitignore"
git push --set-upstream origin master
它应该可以工作,尽管就像已经说过的那样,如果您的仓库由多个用户共享,则忽略gitignore可能会适得其反。