我正在从 Mercurial 切换到 git 并一直在使用hg-快速导出 http://hivelogic.com/articles/converting-from-mercurial-to-git成功地。现在我遇到了一个棘手的情况。我有一个项目,每个分支使用单独的 hg 存储库,我想将它们转换为具有“适当”分支的单个 git 存储库,如果可能的话保留我的 hg 更改集。
所以当前的结构看起来像这样 - 每个文件夹都是一个 hg 存储库:
Project-v1.0
Project-v2.0
Project-v3.0
我希望最终得到一个名为“Project”的 git 存储库,其中包含 3 个分支:v1.0、v2.0 和 v3.0。
这可能吗?
当 hg 存储库是一个基础存储库的克隆时,您可以使用hggit http://mercurial.selenic.com/wiki/HgGit扩展以将它们导出到一个 git 存储库中。假设您的分支位于目录 b1/、b2/ 和 b3/ 中,那么您所需要做的就是
cd b1; mkdir ../gb1 && git init --bare ../gb1 && hg push ../gb1; cd ..
cd b2; mkdir ../gb1 && git init --bare ../gb2 && hg push ../gb2; cd ..
cd b3; mkdir ../gb1 && git init --bare ../gb3 && hg push ../gb3; cd ..
# now you have one git repo for each hg branch
cd gb1
git remote add gb2 ../gb2
git remote add gb3 ../gb3
git fetch --all
# now you have all branches in the gb1 repo
rm -r ../gb2 ../gb3
# the other repos are now not used anymore
如果不同的 hg repos 不相关,则必须使用 VonC 提到的移植点解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)