本文一个git操作,将一个repo整体搬迁到另一个新建的repo中,包含其中的branch/tag:
. git_test1: github.com:xiangbin1997/git_test1.git
. git_test2: github.com:xiangbin1997/git_test2.git

用git_test1替换 git_test2

bare 模式clone git_test1

[postgres@hgcndn git_test1_full]$ git clone --bare git@github.com:xiangbin1997/git_test1.git  git_test1Cloning into bare repository 'git_test1'...remote: Enumerating objects: 19, done.remote: Counting objects: 100% (19/19), done.remote: Compressing objects: 100% (15/15), done.Receiving objects: 100% (19/19), done.Resolving deltas: 100% (2/2), done.remote: Total 19 (delta 2), reused 13 (delta 0), pack-reused 0[postgres@hgcndn git_test1_full]$ cd git_test1/[postgres@hgcndn git_test1]$ lltotal 16drwxrwxr-x 2 postgres postgres   6 Jul  8 02:48 branches-rw-rw-r-- 1 postgres postgres 133 Jul  8 02:48 config-rw-rw-r-- 1 postgres postgres  73 Jul  8 02:48 description-rw-rw-r-- 1 postgres postgres  21 Jul  8 02:48 HEADdrwxrwxr-x 2 postgres postgres 242 Jul  8 02:48 hooksdrwxrwxr-x 2 postgres postgres  21 Jul  8 02:48 infodrwxrwxr-x 4 postgres postgres  30 Jul  8 02:48 objects-rw-rw-r-- 1 postgres postgres 210 Jul  8 02:48 packed-refsdrwxrwxr-x 4 postgres postgres  31 Jul  8 02:48 refs

减少remote2

[postgres@hgcndn git_test1]$ git remote add remote2 git@github.com:xiangbin1997/git_test2.git

mirror模式push到remote2

[postgres@hgcndn git_test1]$ git push --mirror remote2Counting objects: 19, done.Compressing objects: 100% (13/13), done.Writing objects: 100% (19/19), 2.23 KiB | 0 bytes/s, done.Total 19 (delta 2), reused 19 (delta 2)remote: Resolving deltas: 100% (2/2), done.To git@github.com:xiangbin1997/git_test2.git + 89759c9...ab52843 main -> main (forced update) * [new branch]      dev -> dev * [new branch]      mydev -> mydev

参考
https://zhuanlan.zhihu.com/p/...