68

我在 git 存储库中有一个 C# Visual Studio 项目。我想忽略内容bin/Debug目录,但不忽略bin/Release' 目录的内容。我已添加bin/Debug到我的.gitignore文件中,但它似乎不起作用 - 它包括bin目录的全部内容。正确的条目是什么?

4

9 回答 9

80

你不应该删除任何东西。添加 .gitignore 文件后,运行此命令以清除缓存,然后再次暂存并提交:

git rm -r . --cached
于 2013-03-11T18:18:55.147 回答
46

这通常是因为 .gitignore 是在文件提交后添加的。.gitignore 告诉 git 忽略匹配的未跟踪文件,一旦提交内容,忽略将不再起作用。修复它的一种方法是删除 bin/debug 文件夹(手动通过 explorer/powershell/bash),然后提交删除。一旦完成,忽略应该按您的预期工作。

  1. 删除文件/文件夹
  2. git add -A
  3. git commit
于 2012-06-20T16:07:29.853 回答
37

这是我们最近一直在使用的,它删除了所有重新生成的东西和其他一些重要的东西。请注意,我们不会提交我们的发布目录,因此您不应包含Release/在您.gitignoreDebug/.

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

更新

这是来自 github 的一个非常全面的示例:

于 2012-06-20T15:56:37.047 回答
16

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

git rm -r . --cached

我手动添加了.gitignore文件,但在我运行此命令之前没有考虑到它。

然后我不得不再次承诺,现在一切顺利。/bin并且/obj文件夹现在已正确排除。

于 2016-12-06T08:50:49.180 回答
14

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

*/**/bin/Debug
*/**/bin/Release
*/**/obj/Debug
*/**/obj/Release
于 2016-02-03T11:16:13.950 回答
2

我通过替换bin/DebugDebug.

这也会产生忽略obj/Debug目录的影响,但是我想忽略目录的全部内容obj,所以我也添加obj.gitignore.

于 2012-06-20T16:35:33.987 回答
2

这对我有用:

*.exe
*.pdb
*.manifest
*.cache

如果你像我一样使用 GitHub Desktop,你可以右键单击要排除的文件或右键单击它并按扩展名排除:

在此处输入图像描述

这将.gitignore使用上面的代码自动为您生成一个文件。您可以在此处下载 GitHub Desktop:适用于 Windows 64 位的 GitHub Desktop

于 2017-09-17T05:21:58.620 回答
1

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

于 2019-03-22T17:16:01.950 回答
0

这可能有点跑题了,但是每当开始创建一个新项目时,我通常使用GitIgnore.IO来创建我的初始 gitignore 文件,然后根据我的需要从那里调整它。

于 2017-12-03T01:52:07.917 回答