【发布时间】:2011-10-06 10:14:10
【问题描述】:
我需要将我的 git repo 分成两部分。我使用了这里显示的步骤:Detach (move) subdirectory into separate Git repository
我使用的命令是:
git filter-branch --subdirectory-filter ABC HEAD -- --all
这似乎工作正常,并让我以 ABC 作为根。
但是现在,如果我尝试签出在拆分 repo 之前存在的标签:
git checkout an-old-tagname
它正在重新创建旧的目录结构 - 因此将 ABC 与 XYZ1 和 XYZ2 一起重新创建为子目录。
我知道这就是 repo 在那个时间点的真实看法——但我希望标签只引用 ABC 位,就好像它们当时在根目录中一样。我认为这就是 filter-branch 在重写历史时所做的事情,但显然我没有正确理解它。
我怎样才能重新编写标签,以便我可以回到过去,同时仍然让 ABC 成为 repo 的根?
【问题讨论】:
标签: git git-filter-branch