我需要将我的Git仓库拆成两个部分。我使用了这里显示的步骤:从Git仓库中分离(移动)子目录到独立的Git仓库
我使用的命令是:
git filter-branch --subdirectory-filter ABC HEAD -- --all
看起来一切顺利,我现在的根目录是ABC。
但是,如果我尝试检出在我拆分存储库之前存在的标签:
git checkout an-old-tagname
它正在重新创建旧的目录结构- 因此作为子目录重新创建ABC,以及XYZ1和XYZ2。
我知道这就是那个时间点上存储库实际看起来的样子 - 但我希望标签只引用ABC部分,好像它们当时是在根目录下的一样。我认为在重写历史时 filter-branch 正在做这件事情,但很明显我没有完全理解它。
如何重写标签,以便我可以回到过去,同时仍然使ABC成为存储库的根目录?
--subdirectory-filter ... --tag-name-filter cat -- --tags
的状态? - Malcolm Box