我使用BFG Repo Cleaner作为指示here,然后推到远程。
在那之后,我意识到我的分支在前面和后面都有几百次提交 在使用repo清洁器之前,每个分支应该提前几个最近的提交。我认为它创造了一个全新的完全不相交的历史。
我尝试在每个分支上执行rebase master,但似乎有很多冲突文件。它几乎经历了历史,并期望为每个提交解决冲突。显然这非常耗时,并且存在很大的错误空间。
是否有一种更清晰,更快捷的方法来修复所有这些本地分支机构,以便仅通过最近的提交来领先于主机?
答案 0 :(得分:3)
我认为它创造了一个全新的完全不相交的历史。
是的,这就是BFG所做的:它重写历史记录以清除某些(大)文件的提交。
如果您已强行推送到遥控器,则需要将本地分支提取并重置为新的远程分支(确保您没有正在进行本地修改)。
git fetch
git branch tmp
git reset --hard origin/myBranch
如果你在tmp
进行了一些新的提交,git cherry-pick
它们位于重置分支之上
然后你可以从新的状态恢复新的提交。