zoukankan      html  css  js  c++  java
  • 带着历史提交记录迁移git仓库

    1. git push --mirror

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

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

     或

    // 普通模式克隆仓库
    git clone git@gitee.com:zhangamie/testApp.git
    // push所有本地已存在的分支(不管是否有对应的远程分支)
    git push --mirror git@gitee.com:zhangamie/testApp2.git

    2. 加远程源

    git remote add origin2 git@gitee.com:zhangamie/testApp2.git
    git push origin2
    git checkout dev
    git push origin2
    ...

    这种方式的缺点是只能一次push一个分支,如果要克隆所有分支,需要checkout到各个分支然后push

    3. git subtree

    推荐阅读:git subtree操作

    上面2种都是整个仓库的迁移,而git subtree可以把某个子目录拆出去

    例如想把仓库的目录src/apps/testApp拆出去一个仓库,并且带上这个目录的所有提交历史记录

    首先我们得创建一个空的仓库(记得别带任何初始化文件,例如README.md)

    例如:git@github.com:xxxx/testApp.git master

    然后到主仓库执行这段git命令,就可以到testApp看到代码啦

    git subtree push --prefix=src/apps/testApp git@github.com:xxxx/testApp.git master
  • 相关阅读:
    简单理解OOP——面向对象编程
    SpringMVC拦截器
    Vue简洁及基本用法
    springMVC实现文件上传下载
    Python笔记⑤爬虫
    Python笔记4
    Python笔记3
    Python基础语法笔记2
    Python基础入门语法1
    Navicat连接mysql时候出现1251错误代码
  • 原文地址:https://www.cnblogs.com/amiezhang/p/11120276.html
Copyright © 2011-2022 走看看