我有一个git repo,我需要在没有冲突的情况下工作。它是.net / c#mvc repo。问题是dll和pdb文件。这些文件意外地被提交到了repo,因此当我执行我的初始git pull
时,我得到了另一个开发人员提交的所有这些文件。
我设置.gitignore
就像这样:
bin/
obj/
App_data/
从其他帖子我相信这是我应该做的全部,但是,如果我构建我的项目并运行git status
它会显示许多将要提交的dll和pdb文件。
这是因为当克隆它时,那些文件存在于repo中吗?如果是这样,删除这些文件的最佳方法是什么?
答案 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