我想忽略我的 git 存储库中的 bin 和 obj 文件夹。正如我发现的那样,在 .gitignore 中没有简单的方法可以做到这一点。那么,还有其他方法吗?在 Visual Studio 中使用干净的解决方案?
11 回答
我不确定为什么这对你不起作用。如果有帮助,这是我的 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,那么有一种简单的方法可以做到这一点。
- 打开团队资源管理器
- 点击设置
- 存储库设置
- 在忽略和属性文件部分下单击忽略文件旁边的添加。
它将创建一个默认的 .gitignore 文件,该文件将忽略框架/语言将使用的大多数常见文件夹和文件。
如果您之前已提交 bin 和 obj 文件夹,将它们添加到 .gitignore 不会自动删除它们。例如,您需要提交删除这些文件夹,
git rm -rf obj
然后git rm -rf yourProject/obj
提交删除
- 在 Windows 资源管理器中找到
bin
和文件夹obj
- 右键单击 TortoiseGit > 删除并添加到忽略列表 > bin
- 右键单击 TortoiseGit > 删除并添加到忽略列表 > obj
尝试添加不需要的文件夹的名称,git 永远不会从前面提到的根目录中获取这些更改。这对我有用,但将这些文件夹名称添加到.gitignore
:
bin
obj
packages
如果您想在所有项目中忽略 bin 和 obj ,那么您可以使用(来自gitignore 手册页)
从配置变量 core.excludesfile 指定的文件中读取的模式。
core.excludesfile 可以在 Unix 中 ~/.gitconfig 的配置文件中设置 - 我不知道它在 Windows 下的位置
@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 文件中指定的文件夹。
我让一些新开发人员将他们的 OBJ 和 Bin 文件签入到存储库中。即使我有 git ignore 来排除这些文件,它在我的本地仓库中也不起作用。
我做了以下事情来解决这个问题
- 从存储库中删除了 Bin 和 Obj 文件夹。
- 也从我的本地仓库中删除了 bin 和 obj 文件夹。
- 创建/更新 gitignore 并保存(如果尚未完成)
如果您在 Visual Studio 中的 repo ex: .suo 中还有其他用户特定文件,您可以在执行上述操作后将它们添加到 gitignore 文件中。
我在浪费了一点时间后发现了这一点,希望这对同一场景中的某些人有所帮助。
在我的例子中,bin 和 obj 文件夹嵌套在根 .gitignore 文件的 Project 文件夹下,所以我必须像下面这样添加它:
[PROJECT_FOLDER_NAME]/bin
[PROJECT_FOLDER_NAME]/obj
将 PROJECT_FOLDER_NAME 替换为您的项目文件夹名称