由于我最近尝试将我的提交推送到github,因此我收到了与此question相同的错误消息。我从我的存储库中删除了文件,但现在必须清理历史记录。正如在答案中所建议的那样,我研究了BFG,这似乎是解决方案。在阅读instructions时,首先使用git --mirror link-to-remote-repo
。
现在我想知道,因为我无法推送最新的提交,可能我的本地提交历史比github上的提交历史更长。此外,我不确定,因为我所做的所有工作都是在分支机构而不是主机上,以及它如何影响我的存储库。
答案 0 :(得分:0)
手动解决方案(基于cheery pick
)
编辑:在您开始之前,请提交或存储您当地的更改。
假设我们有两个分支master
和dev
,它们具有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