美文网首页嵌入式编程OneOS物联网操作系统想法
迁移GIT仓库并带有历史提交记录

迁移GIT仓库并带有历史提交记录

作者: 罗蓁蓁 | 来源:发表于2021-10-13 14:54 被阅读0次

    迁移git仓库

    开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不是重新开发,重头再来。

    我们可以这样做:

    使用--mirror模式会把本地的分支都克隆。

    // 先用--bare克隆裸仓库
    git clone git@gitee.com:xxx/testApp1.git --bare
    // 进入testApp1.git,这样就可以把所有分支都克隆到新仓库了
    git push --mirror git@gitee.com:xxx/testApp2.git
    

    我们还可以这样做:

    git remote add gitlab git@gitee.com:xxx/testApp2.git
    git push gitlab
    git checkout dev
    git push gitlab
    ...
    

    这样的方法是,把testApp2作为新增的远程仓库,然后使用push一次推送一个分支。这种方式的好处是:迁移的git仓库,只需迁移指定的分支。

    迁移git仓库子目录

    上面的方法是整个仓库的迁移,但如果只想迁移git仓库的子目录,则可以使用git subtree,比如想要把仓库目录thirdparty\telnetd拆分出去作为一个新的库,并且还要带上她所有的历史提交记录。

    首先,我们同样需要新建一个新的空仓库(注意:不要带有任何初始化文件,包括README.md)。

    然后,到主仓库执行以下git命令,就可以看到telnetd仓库已有代码了。

    git subtree push --prefix=thirdparty/telnetd git@gitee.com:components/telnetd.git master
    

    这样,就完成子目录的迁移啦,就是有个问题,好慢~

    关注&&联系

    gitee: https://gitee.com/cmcc-oneos/OneOS-Lite

    docs: https://oneos-lite.com/

    公众号:CMCC-OneOS

    相关文章

      网友评论

        本文标题:迁移GIT仓库并带有历史提交记录

        本文链接:https://www.haomeiwen.com/subject/gizsoltx.html