美文网首页
gerrit代码在submit后未能同步至gitlab的解决过程

gerrit代码在submit后未能同步至gitlab的解决过程

作者: 天草二十六_简村人 | 来源:发表于2022-03-11 10:55 被阅读0次

一、问题描述

最近几次直接对gitlab仓库进行代码提交,导致gerrit一直没有能够被同步最新的代码。我前后有试过两个办法,最后才算成功,特此记录下来前后的解决过程,可能对同样遇到该问题的同事有所帮助。

二、思路与步骤

把gitlab代码拷贝过来,重新提交至gerrit,如果没有提交.git文件,将会丢失提交记录。

1、gitlab代码是最新的,在代码工程中,将远程仓库地址修改为gerrit地址。

 git remote set-url origin ssh://xxx@192.168.5.169:29418/service/xxx-service\

2.1、提交代码

git push origin master:refs/for/master

提示

2.2、强制提交到gerrit的master分支,第一次我写错了分支,造成了新建了一个分支“orgin/master”。

git push --force origin master:orgin/master

发现提交成功,但是分支却多了"orgin/"。


企业微信截图_495cc604-c733-4f57-89fc-a30b63bcd9bc.png

2.3、需要开放限制:提交到master分支的保护权限

git push --force origin master:master

否则会报错提示如下:

xxx-service git:(master) git push --force origin master:master      
Total 0 (delta 0), reused 0 (delta 0)
remote: error: branch refs/heads/master:
remote: You need 'Push' rights with 'Force' flag set to do a non-fastforward push.
remote: User: xxxxxxx
remote: Contact an administrator to fix the permissions
remote: Processing changes: refs: 1, done    
To ssh://192.168.5.169:29418/service/xxx-service
 ! [remote rejected] master -> master (prohibited by Gerrit: not permitted: force update)
error: failed to push some refs to 'ssh://xxxxxxx@192.168.5.169:29418/service/xxx-service'

三、注意问题

1、想要让新的gitlab和旧的gerrit代码保持同步,必须要把gitlab的git提交记录二次提交到gerrit才行。

2、我第一次尝试过,只把gitlab的代码重新提交到gerrit,虽然代码是能提交上去,但是在submit的时候,无法将gerrit代码同步至gitlab。注意:一定要加上.git文件,也即git提交记录。

3、需要在提交至gerrit的时候,加上--force参数,否则它会提示你缺少Change-Id。

missing Change-Id in message footer

然后当你往手动创建Change-Id的方向去解决问题的时候,就越跑越偏了!!

git commit --amend
## 不要走这条路~~

4、验证代码是否为最新。提示你:no new changes,已经是最新的代码了!!

➜  xxx-service git:(master) git push origin HEAD:refs/for/master
Total 0 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 1, done    
To ssh://192.168.5.169:29418/service/xxx-service
 ! [remote rejected] HEAD -> refs/for/master (no new changes)
error: failed to push some refs to 'ssh://xxxxxxx@192.168.5.169:29418/service/xxx-service'

相关文章

  • gerrit代码在submit后未能同步至gitlab的解决过程

    一、问题描述 最近几次直接对gitlab仓库进行代码提交,导致gerrit一直没有能够被同步最新的代码。我前后有试...

  • Gerrit日常维护记录

    Gerrit日常维护记录 Gerrit代码审核工具是个好东西,尤其是在和Gitlab和Jenkins对接后,在代码...

  • CI消息通知的设计方案

    一.需求CI主要依赖gerrit,jenkins,gitlab,sonar四块。 开发人员提交代码到gerrit,...

  • Gerrit 3.1.0 Code Review (代码审查)

    Code Review Base on Gerrit-3.1.0, Gitlab, Jenkins Gerrit ...

  • 迁移仓库

    从Gerrit迁移代码到Gitlab 1.先在Gitlab新建仓库,随便添加个readme之类的文件(原有仓库有代...

  • jinkens自动化部署

    情景:在本地开发完成后,提交代码到gitlab,gitlab上的代码会同步到多个集群机器,并可以在多台机器完成一些...

  • DevOps开源工具

    开发工具 版本控制&协作开发 版本控制系统 Git 代码托管平台 GitLab 代码评审工具 Gerrit 版本控...

  • Git使用(二):本地仓库关联多个远程仓库

    有一个项目一直是用Gerrit进行源码管理,最近有个需求要将代码移到GitLab上去,但是又不想放弃Gerrit的...

  • Git 仓库迁移

    以前使用 gerrit ,版本比较老,而且功能单一。最近项目组准备用gitlab 做代码 & 项目进度管理,做代码...

  • 【gerrit】搭建笔记

    迁移gitlab库到gerrit并保留历史记录 进入gerrit的git路径,我的是/home/gerrit/re...

网友评论

      本文标题:gerrit代码在submit后未能同步至gitlab的解决过程

      本文链接:https://www.haomeiwen.com/subject/cpycdrtx.html