如何修复gitignore中的.vscode跟踪

3htmauhk  于 2023-01-28  发布在  Git
关注(0)|答案(4)|浏览(172)

我在将.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时添加到我的远程仓库中。

au9on6nz

au9on6nz1#

有类似的问题,原来文件被添加到我的缓存。清除它与下面的命令工作。

git rm --cached .vscode/settings.json

参考github上的issue,我在那里找到了解决方案。

p8ekf7hl

p8ekf7hl2#

也许可以在你的. gitignore中尝试一下,这样会忽略整个.vscode目录,不管它在哪里。

**/.vscode/
lyfkaqu1

lyfkaqu13#

发生在一个未被跟踪的git文件.vscode/settings.json上。原来是我们巨大的.gitignore文件中的第二行,它覆盖了我们的工作。在下面的例子中,只需删除最下面一行。
记住在更改后重新暂存并提交.gitgnore

# IDEs and editors
.settings/
.vscode/settings.json   -- Line I added that "was not working"
...

# IDE - VSCode
.vscode/*
!.vscode/settings.json  -- Line discovered that was overriding above (REMOVE)
...
x3naxklr

x3naxklr4#

因为有三种类型的文件(跟踪,未跟踪和忽略)。已经被跟踪或索引的文件不能通过添加到. gitignore而被忽略。相反,它们的索引应该被删除。然后,如果你将它们添加到.gitignore,它将被忽略。
假设你在root中有一个名为test.txt的跟踪文件,现在你要把这个文件添加到. gitignore中,除非你像下面这样把它从git索引中删除,否则它不会工作

git rm --cached test.txt

此外,如果文件不在根目录中,则可以使用文件的相对路径删除该文件。
然后索引会被删除,git会将它们暂存为已删除文件,但不会从本地文件中删除。

相关问题