用BFG清理git历史

时间:2016-11-28 02:58:21

标签: git github large-files bfg-repo-cleaner

由于我最近尝试将我的提交推送到github,因此我收到了与此question相同的错误消息。我从我的存储库中删除了文件,但现在必须清理历史记录。正如在答案中所建议的那样,我研究了BFG,这似乎是解决方案。在阅读instructions时,首先使用git --mirror link-to-remote-repo

现在我想知道,因为我无法推送最新的提交,可能我的本地提交历史比github上的提交历史更长。此外,我不确定,因为我所做的所有工作都是在分支机构而不是主机上,以及它如何影响我的存储库。

1 个答案:

答案 0 :(得分:0)

手动解决方案(基于cheery pick

编辑:在您开始之前,请提交或存储您当地的更改。

假设我们有两个分支masterdev,它们具有SHA1 = X的公共提交。分支dev包含提交A1,A2,...,A16

  • git checkout dev
  • git checkout -b new-dev
  • git reset --hard X

对于dev(A1,...,A16)中的每次提交:

  • git cherry-pick A1 --no-commit
  • 使用git status
  • 检查索引
  • 从索引git reset HEAD myfolder/mybinary.rpm
  • 中删除有问题的二进制文件
  • 删除文件git rm myfolder/mybinary.rpm