gpt4 book ai didi

git - 将多个 hg 存储库转换为具有多个分支的单个 git 存储库

转载 作者:太空狗 更新时间:2023-10-29 13:41:51 24 4
gpt4 key购买 nike

我正在从 Mercurial 切换到 git,并且一直在使用 hg-fast-export成功地。现在我遇到了一个棘手的情况。我有一个项目,每个分支使用单独的 hg 存储库,我想将它们转换为具有“适当”分支的单个 git 存储库,尽可能保留我的 hg 变更集。

所以当前结构看起来像这样——每个文件夹都是一个 hg 存储库:

Project-v1.0
Project-v2.0
Project-v3.0

我想以一个名为“项目”的单一 git 存储库结束,它包含 3 个分支,v1.0、v2.0 和 v3.0。

这可能吗?

最佳答案

当 hg 存储库是来自一个基本存储库的克隆时,您可以使用 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提到的移植点解决方案。

关于git - 将多个 hg 存储库转换为具有多个分支的单个 git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4805457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com