繁体   English   中英

我怎么能忽略 git 存储库中的 bin 和 obj 文件夹?

[英]How could I ignore bin and obj folders from git repository?

我想从我的 git 存储库中忽略 bin 和 obj 文件夹。 正如我发现的那样,在 .gitignore 中没有简单的方法可以做到这一点。 那么,还有其他办法吗? 在 Visual Studio 中使用干净的解决方案?

我不确定为什么这对你不起作用。 如果有帮助,这里是我的一个 Visual Studio/git 项目中的典型 .gitignore 文件:

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

简单地在 gitignore 中创建一个条目可能不会忽略文件,您可能需要提交它。 我使用了以下方法并为我工作

git rm -r --cached .

git add .

然后

git commit -am "Remove ignored files"

但是,这会忽略我稍后包含在存储库中的脚本文件夹。

更新

在最近更新 Visual Studio 2019 后,以下选项不可用。 或者,您也可以从以下位置复制最新的 gitignore 内容。 https://raw.githubusercontent.com/github/gitignore/master/VisualStudio.gitignore

原答案

如果您使用的是 Visual Studio,那么有一种简单的方法可以做到这一点。

  1. 打开团队资源管理器
  2. 点击设置
  3. 存储库设置
  4. 在忽略和属性文件部分下单击忽略文件旁边的添加。

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

在此处输入图片说明

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

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

如果您想在所有项目中忽略 bin 和 obj,则可以使用(来自gitignore 手册页

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

core.excludesfile 可以在 Unix 中的 ~/.gitconfig 配置文件中设置 - 我不知道它在 Windows 下的位置

我让一些新开发人员将他们的 OBJ 和 Bin 文件签入存储库。 即使我有 git ignore 来排除这些文件,它也无法在我的本地存储库中工作。

我做了以下事情来解决这个问题

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

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

我在浪费了一点时间后发现了这一点,希望这对同一场景中的某些人有所帮助。

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

我使用 VS2019 和 Azure DevOps 作为我的 Git 存储库。 这是我修复它的方法。

在 Visual Studio 中,添加 .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 文件中指定的文件夹。

如果您尝试通过源代码树并且仍然没有忽略文件,请转到工具-->选项-> Git,然后选择 .gitignore 的位置在此处输入图片说明

就我而言,bin 和 obj 文件夹嵌套在根 .gitignore 文件的 Project 文件夹下,所以我必须像下面这样添加它:

[PROJECT_FOLDER_NAME]/bin
[PROJECT_FOLDER_NAME]/对象

将 PROJECT_FOLDER_NAME 替换为您的项目文件夹名称

尝试添加不需要的文件夹的名称,git 永远不会从前面提到的根目录直接进行这些更改。 尽管将这些文件夹名称添加到.gitignore但这对我.gitignore

bin
obj
packages

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM