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

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

zonemu7小时前技术文章1

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

相关文章

Ubuntu 25.04发行版登场:Linux 6.14内核,带来多项技术革新

IT之家 4 月 18 日消息,科技媒体 linuxiac 昨日(4 月 17 日)发布博文,报道称代号为 Plucky Puffin 的 Ubuntu 25.04 发行版正式上线,搭载最新 Linu...

Linux之父:Linux内核5.8是“我们有史以来最大的发行版之一”

Linux内核负责人Linus Torvalds对Linux内核版本5.8的第一个候选发布版本(rc1)看得出来还是挺满意的,该版本包含80万行新代码行和超过14,000个更改的文件,占内核文件检修的...

linux发行版-openSUSE Agama 15安装程序发布:带来多项可用性升级

openSUSE旗下仍在开发中的全新Linux安装工具Agama,于近日推出v15版本,带来了界面增强、实用新功能等一系列改进,为用户带来更顺畅的系统安装体验!界面优化:细节之处见用心新版本在本地化设...

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

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

Win+Ubuntu缝合怪:第三方开发者推出“Wubuntu”Linux发行版

IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Win...

Vue3 如何实现父子组件传值?(vue父子组件传值props)

在Vue 3中,要实现父子组件传值效果主要通过props和emit两种机制来实现,下面我们就来详细介绍一下这两种机制。父组件向子组件传值propsprops是Vue组件的一种机制,主要的作用就是实现从...