当前位置:首页 > 技术文章 > 正文内容

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

迁移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

相关文章

车辆收费管理系统(车辆收费管理格式表)

今天来了解《#车辆收费管理系统》,它包括如下功能:车辆档案表格界面,车辆档案录入信息窗口,设置交费年份表格界面,车辆交费表信息窗口,本月交费表格界面,车辆预交费用表格界面,车辆预交费录入信息窗口,本次...

智能停车场管理系统五种收费类型设置

智能停车场管理系统五种收费类型设置  点击智能停车场管理系统收费标准设置图标,出现下图所示对话框,在这个界面里面可以对停车场系统需要使用的收费标准进行个性化设置:共有五种收费类型(标准收费类、通用标准...

Linux发行版Nobara更新39版本,号称“专为游戏玩家定制”

IT之家 12 月 27 日消息,Linux 发行版 Nobara 今天推出了 39 版本,主要改进了“Gamescope 合成器”,并更新了 OBS Studio、部分驱动程序及 Nautilus...

Vue3 中,父子组件如何传递参数?(vue父子组件传递数据方法)

在 Vue3 中,组件化开发是非常重要的特征,那么组件之间传值就是开发中常见的需求了。组件之间的传值三种方式:父传子、子传父、非父子组件传值。一、父传子( defineProps )父组件主要通过使用...

2024前端面试真题之—VUE篇(前端面试题vuex)

添加图片注释,不超过 140 字(可选)1.vue的生命周期有哪些及每个生命周期做了什么? beforeCreate是new Vue()之后触发的第一个钩子,在当前阶段data、methods、com...

面试官:聊聊你知道的Vue与React的区别

最近面到很多大公司的时候,小编都会碰到一个很尴尬的问题,很多大公司的技术栈都是React,但是小编学的是Vue,其实从本质上来说两者都是比较优秀的前端框架,所以有些面试官会问到Vue和React的区别...