将git库从一个server映射到另外一个server

本文介绍了一种在两个不同的Git服务器间高效同步代码的方法,避免了频繁更改origin链接地址的麻烦。通过在Gerrit上创建分支并调整权限设置,可以实现从一个服务器拉取代码更新,并将其推送到另一个服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在项目开发过程中,我们一般是新建branch来管理不同人或者部门的代码;但是,还有一种情况,团队内部用一个git server01,和其他team合作的时候用另外一个server02, 开发到一定程度后,需要把server02的内容再同步回server01 (或者是吧server02最新的内容上传到server01)。这个时候,我们就需要先把server02的内容先pull到本地,再把本地的git库push到server01.

**********************************************************************

后记:

在实践中发现一种更好的方法,不需要这样来回更改origin链接地址。

1。首先在Gerrit上建立一个分支(如本例“sdm660_xxx_automation_v20190104”),新branch的“Initial Revision”要和需要Merge 的code前面的commit内容一样,以防后面出现冲突;

2. 确保有push的权限,可以看看Gerrit的“Access”选项,确保“Reference: refs/*”中的"Push Merge Commit"权限打开; 如果还有其他权限问题,再试试打开其他的权限。

3。使用命令“git push ssh://git-01.xxx.com:29418/Beast_UiAutomator.git HEAD:refs/for/sdm660_xxx_automation_v20190104”,就可以把新的代码merge到目标git库.

4。 下面在到Gerrit中review和merge新的commit。

**********************************************************************

大家可以参考这篇blog,http://blog.youkuaiyun.com/jgw2008/article/details/79176434

我把最近我自己的经历简单整理如下,

1. 同步server02的内容到本地,这个不做赘述;

2. 查看当前remote server地址, 命令如下

git remote -v

3. 删除当前的remote server地址

git remote rm origin

4. 设置新的remote 地址,在运行下面步骤的时候有错误“you are not allowed to upload merges”,这个是权限不足,我去gerrit server上,添加了"Push"(并且勾选Force Push)和“Push Merge Commit”,就可以正常创建新的分支的

git remote add origin username@192.168.1.1:/home/repository/meadowlark.git

5. 使用git remote -v查看,remote server已经修改。

6. 使用git pull获得目前分支最新的commit;

7. 使用个git checkout xxx,切换到正确的分支;

8. 再次使用step 2~4,恢复原来的remote server;

9. 使用 git push origin xxxx, 将内容push到git server。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值