git filter-branch和BFG回购清理器创建重复分支

时间:2018-09-10 21:25:02

标签: git git-filter-branch bfg-repo-cleaner

我正在将git repo从一个提供程序转移到另一个提供程序。作为该过程的一部分,由于历史记录中文件的大小,新回购将在推送时被拒绝(文件在几个月前已删除,但仍存在于历史记录中)。

我发现git filter-branchBFG repo-cleaner都是解决此问题的选择。它们按预期工作,并允许我推送到新的存储库,但是我发现签名为task/my-branch的所有引用都与Task/my-branch复制了,我找不到任何可以解释为什么或如何避免这种引用的引用。在最坏的情况下,我可以在移动后手动清理这些故障,但想更好地了解发生这种情况的原因以及是否有预防方法。

使用BFG清洁剂采取的步骤

1)git clone --bare ssh://path/to/repo.git

2)cd repo.git

3)git branch -a

观察诸如task/my-branch

之类的分支

4)cd ..

5)java -jar bfg.jar --delete-files repo.git

6)git reflog expire --expire = now --all && git gc --prune = now --aggressive

7)git branch -a

观察分支,例如task/my-branchTask/my-branch

与git filter-branch类似的过程

1)git clone --bare ssh://path/to/repo.git

2)cd repo.git

3)git branch -a

观察诸如task/my-branch

之类的分支

4)git filter-branch -f --prune-empty --tag-name-filter cat --tree-filter'rm -f---all

5)git for-each-ref --format =“%(refname)” refs / original / | xargs -n 1 git update-ref -d

6)git reflog expire --expire = now --all && git gc --prune = now --aggressive

7)git branch -a

观察分支,例如task/my-branchTask/my-branch

0 个答案:

没有答案