我有一个git repo,我需要在没有冲突的情况下工作。它是.net / c#mvc repo。问题是dll和pdb文件。这些文件被意外地提交给了回购,所以当我做我的初始时 git pull
,我得到了另一个开发者提交的所有这些文件。
我已经设置了 .gitignore
像这样:
bin/
obj/
App_data/
从其他帖子我相信这就是我应该做的,但是,如果我构建我的项目并运行 git status
它显示了许多将要提交的dll和pdb文件。
这是因为当克隆它时,那些文件存在于repo中吗?如果是这样,删除这些文件的最佳方法是什么?
您需要先删除这些文件(git rm
),在看到你之前 .gitignore
directoves应用于你的git repo。
如果要将这些文件保留在工作树中,则只能从索引中删除这些文件。
git rm -r --cached a.dll
(见“.gitignore
文件不要忽略“)
但对于生成的文件,它们是否被删除无关紧要:您将在下一次编译时重新创建它们,但忽略它们,因为它们不再是索引的一部分。
这是一个非常常见的问题,通常的答案是你不能清理过去的提交,但有一些特殊的工具。
git过滤器和更容易的BFG repo清洁器:
http://rtyley.github.io/bfg-repo-cleaner/#usage