【发布时间】:2018-12-05 23:26:37
【问题描述】:
在我们的 git repo 中,其中一个分支包含已提交并推送到远程 repo 进行测试的二进制文件,但这导致了填充我们 repo 大小的意外后果。在做了一些研究here 和here 之后,提供了一些解决方案差异很大的场景。我想知道我们是否有一个更简单的方案来避免我们可能会利用的“git push --all --force”(这需要更多的协调)。
在我们的例子中,我们不再关心分支是否存在,并且完全可以删除它(连同它的历史等)。我们可以将所涉及的工作重新提交到另一个分支。由于分支尚未合并到其主分支,我们是否可以完全删除分支。假设在提交的二进制文件的分支中引用是自包含的,有没有更简单的解决方案?
根据研究,提出了以下解决方案:
但是,他们假设读者想要保留历史记录并因此删除有问题的二进制文件,重写历史记录和/或问题仍然本地化到本地存储库。如果问题是远程的,则需要修复本地,然后将 --all 推送到远程。
在这种情况下,我们已经删除了分支并在一个新的分支上重新提交了工作,但是大小还没有改变,我们还需要做什么呢?由于数据已本地化到已删除的分支并且允许删除该分支,是否有更简单的解决方案?我们也不确定 git 是否会以某种方式保留二进制文件,以便在历史的其他部分保留对它们的引用。远程服务器是否需要垃圾收集?修剪参考文献?
【问题讨论】:
标签: git github git-branch git-repo git-history