我在将.gitignore
与存储库中的.vscode
文件夹一起使用时遇到问题。
我在我的.gitignore
中添加了一个规则来忽略我的整个.vscode/
文件夹:
# Visual Studio Code #
.vscode/*
.vscode/settings.json
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history.vscode/settings.json
尽管如此,.vscode
仍然被我的本地git仓库跟踪,我尝试了各种不同的解决方案,包括使用git filter-branch
从我的git历史记录中删除这个文件夹,使用git rm --cached .vscode
清除缓存并重新提交我的修改,但这些解决方案都不能阻止.vscode文件夹被git跟踪。
当我运行git status
时,我一直得到这样的结果:
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
.vscode/
nothing added to commit but untracked files present (use "git add" to track)
到目前为止,我已经解决了这个问题,当我git add
我的更改时,手动排除这个文件夹。
为什么.vscode/
仍然显示为untracked?如果我使用git add .
和git commit
this,它会将此文件夹添加到我的git历史记录中,并最终在我使用git push
时添加到我的远程仓库中。
4条答案
按热度按时间au9on6nz1#
有类似的问题,原来文件被添加到我的缓存。清除它与下面的命令工作。
参考github上的issue,我在那里找到了解决方案。
p8ekf7hl2#
也许可以在你的. gitignore中尝试一下,这样会忽略整个.vscode目录,不管它在哪里。
lyfkaqu13#
发生在一个未被跟踪的git文件
.vscode/settings.json
上。原来是我们巨大的.gitignore
文件中的第二行,它覆盖了我们的工作。在下面的例子中,只需删除最下面一行。记住在更改后重新暂存并提交
.gitgnore
。x3naxklr4#
因为有三种类型的文件(跟踪,未跟踪和忽略)。已经被跟踪或索引的文件不能通过添加到. gitignore而被忽略。相反,它们的索引应该被删除。然后,如果你将它们添加到.gitignore,它将被忽略。
假设你在root中有一个名为test.txt的跟踪文件,现在你要把这个文件添加到. gitignore中,除非你像下面这样把它从git索引中删除,否则它不会工作
此外,如果文件不在根目录中,则可以使用文件的相对路径删除该文件。
然后索引会被删除,git会将它们暂存为已删除文件,但不会从本地文件中删除。