我这样做了:
git filter-branch --tree-filter '~/fix-lines.sh' -d /dev/shm/repo-temp \
--tag-name-filter cat --prune-empty -- --all
基本上修复一些行结束问题。 (大约793次提交被重写)。然后我意识到嘿,我不妨将我的标签转换为4个空格。所以我这样做了:
git filter-branch --tree-filter '~/fix-tabs.sh' -d /dev/shm/repo-temp \
--tag-name-filter cat --prune-empty -- --all
现在我要经历1594个提交对象(添加了一些新对象)。
显然我的整棵老树仍然在git repo的某个地方?如果是这样,我该如何摆脱它,如何检查它已经消失?我只想保持“原始”重写~800次提交,而不是更多。
答案 0 :(得分:1)
检查您可能创建的标签,这些标签可能会使旧树无法进行垃圾收集 也就是说,git-filter-branch在原始树上留下标签不变,并且不会将它们自动移动到新树。
为了摆脱它,我做了像
这样的事情git push . :refs/original/refs/tags/v1.0.x
git push origin :refs/original/refs/tags/v1.0.5
直到所有原始和额外标签都消失了