202

是否可以将.gitignore文件添加到.gitignore自身?

.gitignore

虽然不起作用

我不想在编辑过的文件中看到它

4

5 回答 5

242

.gitignore文件的目的是防止在项目上进行协作的每个人意外提交项目中的一些常见文件,例如生成的缓存文件。因此,您不应忽略.gitignore,因为它应该包含在存储库中。

如果您只想忽略一个存储库中的文件,但又想避免提交忽略列表(例如个人文件),您可以将它们添加到.git/info/exclude该存储库中。

如果您想忽略计算机上每个存储库上的某些文件,您可以创建该文件~/.gitignore_global然后运行

git config --global core.excludesfile ~/.gitignore_global
于 2012-04-16T15:23:49.413 回答
51

如果 .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 status 中,即使您稍后将其修改为忽略自身。

于 2012-05-23T21:37:21.073 回答
26

这样做没有很好的理由。如果您只想为您的克隆忽略文件,请将它们添加到,而不是 文件中。.git/info/exclude.gitignore

于 2012-04-16T15:22:31.443 回答
5

输入.gitignoregitignore 文件后,尝试以下操作,

git rm -r --cached .
git add --all
git commit -m "ignoring gitignore"
git push --set-upstream origin master

它应该可以工作,尽管就像已经说过的那样,如果您的存储库由多个用户共享,则忽略 gitignore 可能会适得其反。

于 2019-04-02T23:25:46.490 回答
3

是的你可以; 你仍然在编辑的文件中看到它,因为它仍然被 git 跟踪,并且被 git 跟踪的文件总是被标记为已修改,即使它们在 .gitignore 中。所以简单地取消跟踪它。

但是为什么不提交或重置您对其所做的更改呢?这是将其从状态中删除的更好方法...另外请注意,任何新的 repo 克隆都必须添加它.gitignore,这可能很烦人。

于 2012-04-16T15:18:30.477 回答