如何忽略 git 存储库中的 bin 和 obj 文件夹?

我想忽略 git 存储库中的 bin 和 obj 文件夹。正如我发现的那样,在这里没有简单的方法可以做到这一点。吉蒂诺尔。还有别的办法吗?在 VisualStudio 中使用干净的解决方案? ?

147793 次浏览

我不知道为什么这对你没用。如果有帮助的话,这里有一个典型的。我的一个 Visual Studio/git 项目中的 gitignore 文件:

*.suo
*.user
_ReSharper.*
bin
obj
packages

如果您想忽略所有项目中的 bin 和 obj,那么您可以使用(来自 Gitignore 手册页)

从由配置变量 core.excesfile 指定的文件中读取的模式。

可以在配置文件中设置 core.excesfile,该配置文件为 ~/。Unix 中的 gitconfig-我不知道它在 Windows 下的什么位置

  • 在文件资源管理器中找到 binobj文件夹
  • 右键单击 TortoiseGit > Delete 并添加到忽略列表 > bin
  • 右键单击 TortoiseGit > Delete 并添加到忽略列表 > obj

仅仅在 gitignore 中创建一个条目可能不会忽略文件,您可能需要提交它。我用下面的方法为自己工作

git rm -r --cached .


git add .

那么

git commit -am "Remove ignored files"

但是,这忽略了我的脚本文件夹,我稍后将其包含到存储库中。

如果尝试遍历源代码树,仍然没有获得忽略文件,请转到 tools-> option-> Git,然后选择。吉蒂诺尔 enter image description here

更新

在最近的 VisualStudio2019更新之后,下面的选项不可用。 或者,您也可以从下面的位置复制最新的 gitignore 内容。 Https://raw.githubusercontent.com/github/gitignore/master/visualstudio.gitignore

原始答案

如果您正在使用 VisualStudio,那么有一种简单的方法可以做到这一点。

  1. 开放团队探索者
  2. 点击设置
  3. 存储库设置
  4. 在“忽略和属性文件”部分下 点击忽略文件旁边的添加。

它将创建一个默认值。Gitignore 文件,它将忽略框架/语言使用的大多数常见文件夹和文件。

enter image description here

如果您以前已经提交了 bin 和 obj 文件夹,将它们添加到.gitignore 将不会自动删除它们。 您需要提交删除这些文件夹,例如 git rm -rf objgit rm -rf yourProject/obj 然后删除

在我的示例中,bin 和 obj 文件夹从根目录嵌套在 Project 文件夹下。Gitignore 文件,所以我必须像下面这样添加它:

[ PROJECT _ FOLDER _ NAME ]/bin
[ PROJECT _ FOLDER _ NAME ]/obj

用项目文件夹名替换 PROJECT _ FOLDER _ NAME

@ Raphael Pinel 是绝对正确的. . gitignore 不工作,如果文件已经在 Git 存储库中。

我使用 VS2019和 Azure DevOps 作为我的 Git 仓库。

在 VisualStudio 中,添加. gitignore 文件(如果需要)并将该文件推送到存储库。

 Team Explorer->Changes->Right Click
.gitignore->Stage.

然后提交上演,然后同步。 访问 Azure DevOps 网站。
从 Git 存储库中删除 bin/obj 文件夹。 在 Visual Studio 中,

Team Explorer->Changes->"Undo Changes" to those folders.
Team Explorer->Synch->Pull to update local Git repository.

现在可以生成项目,Git 将忽略. gitignore 文件中指定的文件夹。

我已经让一些新的开发人员将他们的 OBJ 和 Bin 文件签入到存储库中。 即使我有 git 忽略排除这些文件,它不会在我的本地回购工作。

为了解决这个问题,我做了以下工作

  1. 从存储库中删除 Bin 和 Obj 文件夹。
  2. 也从我的本地回购删除了 bin 和 obj 文件夹。
  3. 创建/更新 gitignore 并保存(如果还没有完成)

如果您在 Visual Studio 中的 repo ex: . suo 中还有其他用户特定的文件 完成上述操作后,您可以将它们添加到 gitignore 文件中。

我发现这浪费了安静的一点时间,希望这有助于在同样的情况下的人。

尝试添加不需要的文件夹名称,git 将永远不会直接从根目录进行更改。这对我来说很有用,尽管我把这些文件夹名添加到 .gitignore:

bin
obj
packages