12

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

我已经设置了.gitignore这样的:

bin/
obj/
App_data/

从其他帖子中,我相信这就是我需要做的所有事情,但是,如果我构建我的项目并运行git status它,它会显示许多将要提交的 dll 和 pdb 文件。

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

4

3 回答 3

12

您需要先删除这些文件 ( git rm),然后才能看到您的.gitignore指令应用于您的 git 存储库。

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

git rm -r --cached a.dll

(参见“.gitignore文件不忽略”)

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

于 2012-08-26T20:19:24.917 回答
1

这是一个非常常见的问题,通常的答案是您无法清理过去的提交,但是有专门的工具可以解决这个问题。git 过滤器和更容易的 BFG repo 清洁器: http ://rtyley.github.io/bfg-repo-cleaner/#usage

于 2014-09-25T20:58:03.163 回答
0

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

bin
obj
App_data
于 2019-09-30T12:49:05.093 回答