visual studio项目的.gitignore无效
我使用的是标准的VisualStudio.gitignore文件,但Git for Windows仍然包含构建文件和其他内容。如何解决这个问题 Git忽略我正在使用的文件: VisualStudio会自动生成相同的内容 它的名称正确,并且位于正确的位置 当我输入git status命令时,它会显示构建文件visual studio项目的.gitignore无效,git,visual-studio,Git,Visual Studio,我使用的是标准的VisualStudio.gitignore文件,但Git for Windows仍然包含构建文件和其他内容。如何解决这个问题 Git忽略我正在使用的文件: VisualStudio会自动生成相同的内容 它的名称正确,并且位于正确的位置 当我输入git status命令时,它会显示构建文件 文件已被修改,这意味着在添加.gitignore文件(或明确添加)之前,这些文件已经在git存储库中,因此您现在不能再“忽略”对它们的更改 如果可能,只需重新开始,从头开始创建存储库,但现在
文件已被修改,这意味着在添加.gitignore文件(或明确添加)之前,这些文件已经在git存储库中,因此您现在不能再“忽略”对它们的更改 如果可能,只需重新开始,从头开始创建存储库,但现在进行第一次提交,只添加.gitignore文件(顺便说一句,这总是一个好主意),然后进行第二次提交,添加所有源文件;然后将忽略生成文件
或者,您可以使用交互式重定基来重写历史记录,方法是修改在其中添加这些文件的提交,并在以前的提交中添加.gitignore也不错。或者您可以使用分支过滤来清除这些文件的所有痕迹。可能还有其他选择。对于我们来说,这种方法:
可以停止跟踪任何签入文件的任何更改。您需要告诉git首先从其索引中删除文件,方法是在给定的存储库中调用以下命令
>git rm--cached
。然后更新.gitignore
文件以排除该文件。最后提交文件的删除
Source from.停止跟踪gitignore文件中的文件
打开命令提示符并导航到包含解决方案文件(.sln)的目录,然后运行以下命令(前两个命令最后包含点): 然后打开VisualStudio并同步回购协议。
这似乎对我起了作用。我找到了git命令。我在.cache文件中遇到了这个问题,以下步骤为我解决了这个问题:
HTH从VS Code 1.56.0开始,这对我来说非常有用,因为VS Code ignore文件尚未跟踪,但显示为已更新(文件旁边的绿色U):
- 对
进行编辑以忽略源代码管理侧栏中列出的已更新文件.gitignore
- 右键单击要忽略的源代码管理侧边栏中的一个文件(在上一步中手动编码的更改应该已经覆盖了该文件),然后从上下文弹出菜单中选择
Add to.gitignore
- 这会导致VS代码重新读取
.gitignore
,并刷新源代码管理侧栏中已更改文件的列表
中涵盖的所有以前未跟踪的显示为“已更新”的文件现在应该从源代码管理侧栏中删除.gitignore
git rm -r --cache
然后:
将所有(git Add.)已更改/未计入缓存的文件添加回缓存;这将按原样重新添加文件,因此不需要“重新保存”文件,它们将从git更改中消失,而git更改将删除文件(以及由于第一个命令而删除的所有其他文件)-结果是“更改”或者git状态应该只包含现在将被.gitignore忽略的文件,如果这些文件不在.gitignore更改之前。git add .
资源: 这对我来说是一个长期的斗争,最后我有我的dll的安静,当我只想合并我的更改回到主 dotnet核心项目的my.gitignore:
”
\#文件类型
*.cache
*.dtbcache.v2
*.dll
*.pdb
*.suo
.suo
*.testlog
*.用户
\#目录
**/释放
“文件是否位于正确位置?“构建文件和其他东西”到底是什么?如果您在命令提示符或具有git访问权限的shell中cd到存储库,并执行
git status
操作,它是否也会显示文件?我们需要更多详细信息。请更新问题(太容易在评论中遗漏细节)。您是否定制了.gitignore
?没有被忽略的文件的(相对)路径是什么?命令行git显示了什么()?还请注意,该文件需要命名为.gitignore
,而不是VisualStudio.gitignore
@stijn更新了我的问题此工作与从头开始重新创建repo的可能重复,这是一个疯狂的建议。这就是路。一旦删除gitignore,它在读取时可以正常工作。我不必重新启动VS。在更新我的.gitignore后,我只需转到我的解决方案并删除了我不希望GIT跟踪的文件,然后签入。。。工作得很好这太完美了!同步远程回购以使本地和远程一致对我来说是可行的。这应该是公认的答案-轻松解决问题此方法仅适用于回购没有重大历史记录的情况,因为创建新回购会丢失历史记录。请查看Honza P.的答案,而不是thi
git add .
"
\# file types<br>
*.cache<br>
*.dtbcache.v2<br>
*.dll<br>
*.pdb<br>
*.suo<br>
.suo<br>
*.testlog<br>
*.user<br>
\# directories<br>
**/Release