关于在Gerrit上提交代码的流程,包括出现的一些问题:

1.注册Gerrit账号

从gerrit管理员获取账号密码。

2.登录gerrit

如图1:

清空gerrit仓库 gerrit新建仓库_提交代码

3.添加邮箱

点击Settings,选择Contact Informations,点击右边的Register New Email,如下图2:

清空gerrit仓库 gerrit新建仓库_git_02

添加邮件的目的是当有代码提交时,或需要审核代码,就会收到通知!

4.添加用户

方便不同的用户下都可以登录,这一步不是必须的

[root@centos7 ~]# adduser chanxxxx
[root@centos7 ~]# su - chanxxxx

采用这种方式在之后的操作中会需要sudo权限,但可以:[root@centos7 ~]#cd /home/chanxxxx

5.添加密钥

    点击第三步图2左侧的”SSH Public Keys”,添加需要key,如何获取这个key,可以通过以下方式:

    1)备份.ssh(如果之前存在的话):

cp -r ~/.ssh ~/.ssh.bak

    2)生成密钥:

rm -rf ~/.ssh
ssh-keygen -t rsa -C "Gerrit添加的邮箱地址"   #然后一直回车到结束

 如图3:

清空gerrit仓库 gerrit新建仓库_清空gerrit仓库_03

3)获取密钥key:

cat ~/.ssh/id_rsa.pub

如图4:

清空gerrit仓库 gerrit新建仓库_提交代码_04

4)拷贝所有打印出来的密钥信息到gerrit

 如图5:

清空gerrit仓库 gerrit新建仓库_git_05

点击ADD添加即可

6.Git配置

  1)安装git

[root@centos7 ~]# yum install -y git

  2)安装git-review

[root@centos7 ~]# pip install git-review

此处最好用pip安装,在尝试了yum安装后行不通,可能是自己环境的问题。如果过程中出现time-out异常,那么就换pip源:


 也可以通过源码安装git-review,在GitHub上选择合适的源码:https://github.com/search?utf8=%E2%9C%93&q=git-review&type=,如:openstack-infra/git-review ,在该目录下执行:

python setup.py install

  3)设置git信息

git config --global user.name "Firstname Lastname"
git config --global user.email "your_email@youremail.com"

  4)添加gerrit源,这一步很重要

清空gerrit仓库 gerrit新建仓库_清空gerrit仓库_06

7.提交代码

你可以先创建工程目录,在这个目录下提交代码,这里我将在已有的工程目录下提交代码。

选中”clone with commit-msg hook”和”ssh”,会得到下面这样一个路径,如图6: 

清空gerrit仓库 gerrit新建仓库_gerrit_07

  2)将红框中的路径复制到终端的chanxxx用户下执行,如图7:

清空gerrit仓库 gerrit新建仓库_清空gerrit仓库_08

在下载代码的同时也下载了commit-msg脚本,也是使用gerrit必须的脚本

完成之后,最好给commit-msg授权,执行:

chmod +x ~/zaqar/.git/hooks/commit-msg

  3)查看分支

git branch -a

  若需要切换分支,则执行:

git checkout [branch-name]

  4)在chanxxxx用户下进入下载的Zaqar源码仓库中,修改代码,注意查看是否是在要求的分支下

  5)查看文件状态,执行:

git status

添加指定文件到暂存区,执行:

git add [file1] [file2] ...

  7)完成修改后,提交到仓库区时执行:

git commit             #添加标题和主要信息。

 # 如果代码没有任何新变化,则用来改写上一次commit的提交信息 :git commit --amend -m [message])

  若要查看日志状态和仓库配置情况,执行:

git log                    #查看日志状态
git config --list          #查看git配置

  8)提交代码到gerrit仓库,执行:

git review

有时这里会出现错误,如下图8:

清空gerrit仓库 gerrit新建仓库_提交代码_09

如图这是因为没有更新gerrit的源,也就是:

清空gerrit仓库 gerrit新建仓库_清空gerrit仓库_10

也可能出现:from git_review.cmd import main ImportError: No module named 'git_review'的错误,使用了Python下的~bin/git_review/cmd.py。发现是git-review安装的问题,

解决方法:卸载git-review ,再重新安装。卸载可以执行:

pip uninstall git-review

注意:这个命令貌似在源码安装时有卸载不干净的包,可以重新装一遍,用--record记录哪些包没删除,然后再rm (希望你不会出现这种情况:))

python setup.py install --record files.txt 
cat files.txt | xargs rm -rf

8.查看gerrit状态

如图9:

清空gerrit仓库 gerrit新建仓库_提交代码_11

 

9.添加审核

如图10:

清空gerrit仓库 gerrit新建仓库_提交代码_12

10.其他 

关于git命令的使用详见:

http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html