Gerrit 代码提交问题汇总--持续更新

发布时间 2023-05-24 10:45:36作者: 一条名叫西西的狗

一、带提交记录的代码迁移服务器

git remote add <remote-name> <remote-address>

git fetch <remote-name>
git rebase <remote-name>/<remote-branch>
git push -f <remote-name> HEAD:refs/for/<remote-branch>%submit

其中,remote-name可以随便命名,<remote-address>是项目的路径,<remote-branch>是项目的分支名称,比如:

git remote add gerrit ssh://l@10.200.4.119:29418/b60_ioc/workspace/MssR.git

git fetch gerrit
git rebase gerrit/master
git push -f gerrit HEAD:refs/for/master%submit

此例中,

  remote-address:ssh://l@10.200.4.119:29418/b60_ioc/workspace/MssR.git

  remote-name:gerrit

  remote-branch:master -- 这个是MssR.git项目的主分支 

二、缺少change-id

  方法一、按照错误提示操作

  1. 运行hooks命令
    gitdir=$(git rev-parse --git-dir); scp -p -P 29418 name@git.co.com:hooks/commit-msg ${gitdir}/hooks/

    或[针对上述命令错误操作]
    gitdir=$(git rev-parse --git-dir); scp -O -P 29418 name@git.co.com:hooks/commit-msg ${gitdir}/hooks/
  2. 重新commit
    git commit --amend

  方法二、需要Gerrit管理员操作

project -> list -> 提交的项目 -> Require Change-Id in commit message: false

  1. 选择Projects;
  2. 选择List;
  3. 点击需要提交的项目;

  1.  找到"Require Change-Id in commit message";
  2. 将后面的选项改为"FALSE";
  3. Save Change。

三、服务器host改变

l@l-ThinkCentre-M4500k-N000:~$ ssh-keygen -R server_ip
l@l-ThinkCentre-M4500k-N000:~$ mv .ssh/known_hosts .ssh/known_hosts_bak

其中,server_ip是gerrit服务的ip,比如:

对于Gerrit: http://10.200.4.119:8081/#/admin/projects/b60_ioc/workspace/MssR

执行命令:
ssh-keygen -R 10.200.4.119
mv .ssh/known_hosts .ssh/known_hosts_bak