.gitignore和Visual Studio项目:忽略bin / Debug目录但不忽略bin / Release目录

78
我有一个在git仓库中的C# Visual Studio项目。我想忽略bin/Debug目录下的内容,但不忽略bin/Release目录下的内容。我已将bin/Debug添加到我的.gitignore文件中,但似乎并没有起作用 - 它包括了整个bin目录的内容。正确的条目应该是什么?

请展示您的 .gitignore 文件。 - uday
5
在你的 .gitignore 文件中加入 'Debug/'。 - Noah
10个回答

93

你不需要删除任何文件。在添加了 .gitignore 文件后,运行以下命令清除缓存,然后再次进行暂存和提交:

git rm -r . --cached

3
注意:然后进行阶段性提交(stage and commit again)。 - gidmanma
5
如果你在使用 gitignore 时来晚了,那么这就是正确的解决方案... 当你再次进行暂存和提交时,之前提交的 bin/obj 等内容将被移除。非常好用。 - davewasthere
6
此命令将代码库中的所有文件标记为已删除。 - Kliver Max
git rm -r . --cached -f 这对我也适用。 - ILIAS M. DOLAPO
这在项目开始时还可以!否则文件将被删除,历史记录也会丢失!@KliverMax是正确的! - Khalid Bin Sarower
显示剩余2条评论

51

这通常是因为文件被提交后添加了 .gitignore。.gitignore 告诉 git 忽略与之匹配的未跟踪的文件,一旦提交后就不再起作用。解决方法之一是手动通过资源管理器/PowerShell/Bash删除 bin/debug 文件夹,然后提交删除操作。完成后,忽略应该按照您的期望工作。

  1. 删除文件/文件夹
  2. git add -A
  3. git commit

啊,是的!谢谢你,这个问题困扰了我比我愿意承认的时间还要长。 - MarkyMarksFunkyBunch

45

以下是我们最近使用的内容,它可以删除所有resharper生成的内容和其他一些重要的东西。请注意,我们不提交我们的发布目录,因此您不应该在您的 .gitignore 文件中包括 Release/,但是针对您的问题,您应该包括 Debug/

/build/
*.suo
*.user
_ReSharper.*/
*.sdf
bin/
obj/
Debug/
Release/
*.opensdf
*.tlog
*.log
TestResult.xml
*.VisualState.xml
Version.cs
Version.h
Version.cpp

更新

以下是来自 Github 的一个相当全面的示例:


2
зФ±дЇО bin/ ењљзХ•жМЗдї§дљњеЊЧ Debug/ еТМ Release/ еПШеЊЧе§ЪдљЩпЉМжЙАдї•ињЩеПѓиГљдЄНиµЈдљЬзФ®гАВ - Gary.S
3
@Gary.S,它仍然有效。后面的几行只是多余的,可以删除。 - Drew Noakes

22

以下命令对我有用(感谢“orourkedd”):

git rm -r . --cached

我手动添加了.gitignore文件,但直到我运行了这个命令之后才被考虑在内。

然后我不得不再次提交,现在一切都很好了。/bin/obj文件夹现在被正确排除。


21

我知道这是一个老问题,但我决定分享我的方法,它排除了bin/Debug、bin/Release等目录。

*/**/bin/Debug
*/**/bin/Release
*/**/obj/Debug
*/**/obj/Release

3

我通过将 bin/Debug 替换为 Debug 来解决了这个问题。

这样做也会忽略 obj/Debug 目录,但是我想要忽略整个 obj 目录的所有内容,因此我还将 obj 添加到 .gitignore 中。


3
这对我有效:
*.exe
*.pdb
*.manifest
*.cache

如果您像我一样使用GitHub桌面版,您可以右键单击要排除的文件或右键单击并按扩展名排除:enter image description here 这将自动生成一个类似上面的代码的.gitignore文件。您可以在此处下载GitHub桌面版:GitHub桌面版 for Windows 64位。请注意保留HTML标记。

1

这可能有点偏题,但每当我开始创建新项目时,通常会使用GitIgnore.IO创建我的初始gitignore文件,然后根据我的需求进行微调。


1
在“Git Desktop”中右键单击您想要忽略的文件名,然后将它们添加到.gitignore文件中。这里会自动创建gitignore文件。将该文件提交到git。

0

这对我有用:

/YourProjectNameFolder/bin/Debug

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接