使用当前的.gitignore使Git重建历史记录

时间:2016-08-27 07:36:45

标签: git gitignore

我没有使用.gitignore来忽略项目中编译的二进制文件等文件,所以这些已编译的二进制文件已经被提交到Git存储库中。现在我将.gitignore添加到我的项目中。我想重建整个Git仓库,忽略.gitignore中列出的文件,而不会丢失任何历史记录。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

如果刚刚添加了二进制文件,则从当前缓存中删除它们。

git rm --cached abinary

然后您的.gitignore会自动忽略这些二进制文件。

但如果他们在过去的提交中犯了,你就不会失去历史记录,但你仍然需要从提交中删除这些二进制文件。
您需要git filter-branchbfg repo cleaner

这将重写您的历史记录,您将需要git push --force,因此如果您有多个(您自己)合作者,请提前警告他们。