在Git中,删除意外提交的DLL和PDB文件

时间:2012-08-26 20:11:05

标签: .net git

我有一个git repo,我需要在没有冲突的情况下工作。它是.net / c#mvc repo。问题是dll和pdb文件。这些文件意外地被提交到了repo,因此当我执行我的初始git pull时,我得到了另一个开发人员提交的所有这些文件。

我设置.gitignore就像这样:

bin/
obj/
App_data/

从其他帖子我相信这是我应该做的全部,但是,如果我构建我的项目并运行git status它会显示许多将要提交的dll和pdb文件。

这是因为当克隆它时,那些文件存在于repo中吗?如果是这样,删除这些文件的最佳方法是什么?

3 个答案:

答案 0 :(得分:12)

在看到git rm直接应用于您的git repo之前,您需要先删除这些文件(.gitignore)。

如果要将这些文件保留在工作树中,则只能从索引中删除这些文件。

git rm -r --cached a.dll

(参见“.gitignore file not ignoring”)

但对于生成的文件,它们是否被删除无关紧要:您将在下一次编译时重新创建它们,但忽略它们,因为它们不再是索引的一部分。

答案 1 :(得分:1)

这是一个非常常见的问题,通常的答案是你不能清理过去的提交,但是有一些特殊的工具。 git过滤器和BFG repo清理器更容易: http://rtyley.github.io/bfg-repo-cleaner/#usage

答案 2 :(得分:0)

您的.gitignore文件有错误。应该是这样的:

bin
obj
App_data