在我们开发项目的时候,经常会遇到将一个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
参考
文档信息
- 本文作者:寒澈
- 本文链接:https://www.hancher.top/2023/07/31/git_mirror/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)