我们的 git 存储库历史上有一堆不再需要的大文件。我想使用 Pro Git 中解释的过滤分支技术删除它们:
http://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery http://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery
然后我会使用git push --force all
将其发送到我们的共享存储库,如下所述:
更新开发团队,重写 Git 存储库历史记录,删除大文件 https://stackoverflow.com/questions/4444091/git-filter-branch-to-delete-large-file
但。 Pro Git 说我需要让每个人都 rebase,因为我正在改变历史。我们只很少使用变基,通常只是作为合并的替代方法。我可以让每个人都重新克隆,但这是最后的手段;一些开发人员在当地设有分支机构,其中包含他们想要保留的更改。
那么:每个人到底需要在我们的本地存储库中做什么才能重新建立到新更改的共享存储库?我们是否必须为每个跟踪分支执行一次?如果您想提供分步说明(如果您愿意的话,我会很高兴),我们的存储库被称为 origin,主分支是 master。
关键是每个开发人员都不要失去他们最初的参考master
直到他们完成变基之后。为此,让他们做fetch
(nota pull)在强制推送之后,然后对于每个本地分支,执行以下操作:
git rebase --onto origin/master master <local_branch>
完成后,他们就可以检查他们的master
并通过以下方式更新:
git pull --force
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)