git仓库迁移场景

1.git仓库迁移

代码仓库从公网迁移内网,内外网网络不通,而且必须保证代码完整,包括分支以及提交记录。具体步骤如下

1.1 拉取所有分支镜像

1.2 现在本地电脑新建文件夹

mkdir newdir

1.3 进入新建文件 newdir 执行下面命令拉取所有镜像代码

git clone --mirror 原仓库地址

1.4 在内网gitlab上新建一个空仓库

1.5 将仓库中的旧的远端地址更改为新仓库地址

git remote set-url –-push origin https://*/*.git

1.6 将修改后的Git镜像仓库推送到新的仓库

git push --mirror https://*/*.git

2. 当前仓库A的一个指定分支1 推给 另一个仓库B的另一个指定分支2

可以通过2个主要命令git remote xxx 和 git push newOrigin 当前分支:目标分支 完成。

示例
假设有2个仓库rep1和rep2

rep1:当前仓库 rep2:目标仓库

我们想把当前仓库[rep1]的指定分支[branch1]

推给

另一个仓库[rep2]的指定分支[branch2]

具体步骤如下:

1.在当前仓库操作:更新代码库

git pull

2.查看当前仓库origin只有一个,接下来我们要add另一个仓库的origin

git remote
or
git remote -v(可以看到origin的url)

3.newOrigin:远程仓库名称,可以随便起个方便记忆的,目的是在本地添加一个新的远程链接

git remote add newOrigin master
 
eg:
 
git remote add rep2 branch2
or
git remote add rep2 master
rep2后面是rep2的一个分支,可以指定为master或你要push的目标分支,都可以。执行完命令后可以再次通过git remote or git remote -v查看现在有几个origin,大家可以自行试一试。

4.为新加的仓库设置上目标仓库的url地址(以下以gitee为例)

git remote set-url rep2 https://gitee.com/greatoak/rep2.git

5.在A的本地仓库进行git push

git checkout 本地分支名
git push <远程主机名> <本地分支名>:<远程分支名>
 
eg:
 
git checkout branch1
git push newOrigin branch1:branch2
newOrigin是你想push上哪个远程库,branch1是你想push的那个分支,branch2是push到远程的那个分支。

注意,push前先切换到要push的当前分支上,然后再push。

你可能感兴趣的:(git)