C# Git ignore目录不在.vs目录上工作

C# Git ignore目录不在.vs目录上工作,c#,git,gitignore,C#,Git,Gitignore,我在让git忽略项目中的.vs隐藏目录时遇到问题。 我有以下结构,我的所有项目文件都在MyProject目录中,其中还包括.vs目录,我试图忽略它 root/.git root/MyProject root/.gitattributes root/.gitignore root/MyProject/.vs 我曾尝试向.gitignore文件中添加一系列ignore命令,但似乎都不起作用。 我试过使用 *.vs *.vs/ *.vs/* **/.vs **/.vs* **/.vs** **/.

我在让git忽略项目中的.vs隐藏目录时遇到问题。 我有以下结构,我的所有项目文件都在MyProject目录中,其中还包括.vs目录,我试图忽略它

root/.git
root/MyProject
root/.gitattributes
root/.gitignore

root/MyProject/.vs
我曾尝试向.gitignore文件中添加一系列ignore命令,但似乎都不起作用。 我试过使用

*.vs
*.vs/
*.vs/*
**/.vs
**/.vs*
**/.vs**
**/.vs/**
**/.vs/*
MyProject/*.vs
MyProject/*.vs/
MyProject/*.vs/*
MyProject/**/.vs
MyProject/**/.vs*
MyProject/**/.vs**
MyProject/**/.vs/**
MyProject/**/.vs/*
我只想忽略.vs文件中的所有文件


请协助。

.vs
应该可以。以防万一:将内容添加到
.gitignore
,如果文件已经被跟踪,它将无法工作。它只适用于未跟踪的文件

现在,如果您已经在
.vs
中跟踪内容,并且不想这样做,那么您可以使用两种方法:

  • git-rm--cached.vs
这将删除修订版的.vs目录并向前推进,它不会触及工作树上的文件。这也意味着,如果,比方说,在一年内,您想要回到已经包含这些文件的修订版本之一,您可能会覆盖文件的内容,因为您当时拥有这些文件,这可能会破坏依赖于该元数据的任何东西

  • git过滤器分支
    过滤器回购

这些工具可以重写分支的历史记录,从而完全删除.vs目录。这就像开大炮一样,不应掉以轻心,因为这意味着改写历史。。。其所有含义(超出了本详细解答的范围)。以防万一,filter branch将被淘汰,filter repo是一个仍然不在git中的脚本,如果我没有错的话。

.vs
应该可以。以防万一:将内容添加到
.gitignore
,如果文件已经被跟踪,它将无法工作。它只适用于未跟踪的文件。因此,在使用该命令忽略文件生效之前,我需要将目录从跟踪中删除。