git优雅迁库的方式

2023/07/31 git 共 547 字,约 2 分钟

在我们开发项目的时候,经常会遇到将一个git仓库迁移到一个新的git仓库的情况。 这个时候很多人会把原始的仓库最新代码复制到新库目录下,然后force push即可。

但是这样会产生一个问题,就是新库会把我们的历史提交记录等信息全部丢失了,当做一个全新的仓库来处理,这样给我们后续的问题追踪回溯带来了一些问题。

下面我们介绍一下git优雅迁库的三种方式。

裸库方式(推荐)

// 使用--bare克隆裸仓库
git clone --bare git@url1
// 推送到新库
git push  git@url2

镜像库方式

// 使用--mirror克隆裸仓库
git clone --mirror git@url1
// 推送到新库
git push  git@url2

镜像库是裸库的一种简写,等同于:

$ git clone --bare $URL
$ (cd $(basename $URL) && git remote add --mirror=fetch origin $URL)

由此可知,裸库方式clone下的是git仓库的基本信息。镜像库不仅把基本信息clone下来了,还拉去了最新的分支代码。

新增remote方式

git remote add origin2 [repo-url]
git push origin2

参考

git clone –mirror 和 –bare的区别

文档信息

Search

    Table of Contents