博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gerrit和Gitlab服务器的集成
阅读量:6949 次
发布时间:2019-06-27

本文共 23113 字,大约阅读时间需要 77 分钟。

            Gerrit和Gitlab服务器的集成

                                     作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

一.安装gitlab

  详情请参考:https://www.cnblogs.com/yinzhengjie/p/9568657.html

 

二.在Gitlib上创建项目

1>.点击"New Project"

2>.自定义项目名称

3>.项目创建成功,点击README链接

4>.编辑REDEME文件

5>.文件添加成功

 

三.Gerrit创建同名的项目

1>.点击存储库

2>.点击"CREATE NEW"

3>.点击"CREATE"

4>.项目创建成功

 

四.在Gerrit服务器上克隆代码到本地

1>.在Gerrit生成密钥

[root@gerrit.yinzhengjie.org.cn ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsaGenerating public/private rsa key pair.Created directory '/root/.ssh'.Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:9ROz1CLGzbskWd0nvJMc1jfgmOez8Lpm7kcz1YjSb7k root@git.yinzhengjie.org.cnThe key's randomart image is:+---[RSA 2048]----+|             .   ||         . o++.o ||          =+O+Bo*||         o.*=O.*=||        S oo*+*. ||           oo**. ||            o+o. ||           o..E  ||          ==o    |+----[SHA256]-----+[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+28LdoSvWfllJVfD0OdWV4ku3bIO5u/AtatQJrYhBifIWnWa2WnIQggz6/KIBWF/QCJHzGaPpZrjVzvPnJaDMwaQNFIutSPchob/HebQ7SRI09a1xRHCYZ3hJzSvaYLDrOt41HHAW2gTTmWMQTMtnX0ZZpst6HHwHluCqWCX6j7uNK2jDgOfGxC4RzbR6bVVYsZ2vN+6BvFyrfHL5wUBsIwKBxgfuHj+a0+i6LJtfyqkom/VTLEtvCnizBw41UMPm/rlH5rBIfE52qjrFqgqg2d9Uaz6st7stmguToPwCHjGUPqJVKk2Cf8JaHUOXsP8o73gXESbe9GSZEgqtpapd root@git.yinzhengjie.org.cn[root@gerrit.yinzhengjie.org.cn ~]#

2>.将公钥拷贝到gitlab上

3>.将公钥拷贝到Gerrit上

4>.将gitlab的代码克隆到本地

[root@gerrit.yinzhengjie.org.cn ~]# cd /yinzhengjie/softwares/gerrit/[root@gerrit.yinzhengjie.org.cn /yinzhengjie/softwares/gerrit]# [root@gerrit.yinzhengjie.org.cn /yinzhengjie/softwares/gerrit]# lltotal 0drwxr-xr-x 7 root root 119 Jun 25 03:27 All-Projects.gitdrwxr-xr-x 7 root root 119 Jun 25 03:33 All-Users.gitdrwxr-xr-x 7 root root 100 Jun 25 05:13 yinzhengjie_code.git[root@gerrit.yinzhengjie.org.cn /yinzhengjie/softwares/gerrit]# [root@gerrit.yinzhengjie.org.cn /yinzhengjie/softwares/gerrit]# rm -rf yinzhengjie_code.git        #先将Gerrit创建的同名项目删除[root@gerrit.yinzhengjie.org.cn /yinzhengjie/softwares/gerrit]# [root@gerrit.yinzhengjie.org.cn /yinzhengjie/softwares/gerrit]# lltotal 0drwxr-xr-x 7 root root 119 Jun 25 03:27 All-Projects.gitdrwxr-xr-x 7 root root 119 Jun 25 03:33 All-Users.git[root@gerrit.yinzhengjie.org.cn /yinzhengjie/softwares/gerrit]# [root@gerrit.yinzhengjie.org.cn /yinzhengjie/softwares/gerrit]# git clone --bare git@gitlab.yinzhengjie.org.cn:root/yinzhengjie_code.git      #然后把gitlab的项目克隆到Gerrit的目录中Cloning into bare repository 'yinzhengjie_code.git'...The authenticity of host 'gitlab.yinzhengjie.org.cn (172.30.1.80)' can't be established.ECDSA key fingerprint is SHA256:dxYzHaEpkoSjSE0UDEtz14Y4dCn+GX3HJZ+P8AzsF54.ECDSA key fingerprint is MD5:f6:a9:3b:12:2c:44:2f:e3:d7:2f:0b:fb:b2:33:4f:99.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'gitlab.yinzhengjie.org.cn,172.30.1.80' (ECDSA) to the list of known hosts.remote: Counting objects: 3, done.remote: Total 3 (delta 0), reused 0 (delta 0)Receiving objects: 100% (3/3), done.[root@gerrit.yinzhengjie.org.cn /yinzhengjie/softwares/gerrit]# [root@gerrit.yinzhengjie.org.cn /yinzhengjie/softwares/gerrit]# lltotal 0drwxr-xr-x 7 root root 119 Jun 25 03:27 All-Projects.gitdrwxr-xr-x 7 root root 119 Jun 25 03:33 All-Users.gitdrwxr-xr-x 7 root root 138 Jun 25 05:55 yinzhengjie_code.git[root@gerrit.yinzhengjie.org.cn /yinzhengjie/softwares/gerrit]#

5>.客户端克隆Gerrit的代码(同理,客户端需要把公钥内容上传到Gerrit服务器)

[root@git.yinzhengjie.org.cn ~]# git clone "ssh://admin@gerrit.yinzhengjie.org.cn:29418/yinzhengjie_code"            #我们在客户端把Gerrit的项目克隆到本地Cloning into 'yinzhengjie_code'...The authenticity of host '[gerrit.yinzhengjie.org.cn]:29418 ([172.30.1.81]:29418)' can't be established.ECDSA key fingerprint is SHA256:LfFtLE0id3OuNcGSZokcrCFCv9HxzJtS8xIqLWw+SIM.ECDSA key fingerprint is MD5:23:ae:2d:04:52:75:82:87:ef:7f:44:73:87:5c:45:0a.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '[gerrit.yinzhengjie.org.cn]:29418,[172.30.1.81]:29418' (ECDSA) to the list of known hosts.remote: Counting objects: 3, doneremote: Finding sources: 100% (3/3)remote: Total 3 (delta 0), reused 3 (delta 0)Receiving objects: 100% (3/3), done.[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# lltotal 0drwxr-xr-x 3 root root 35 Jun 25 06:02 yinzhengjie_code[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# ll yinzhengjie_code/total 4-rw-r--r-- 1 root root 41 Jun 25 06:02 README.md[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# more yinzhengjie_code/README.md                                     #查看我们聪Gerrit服务器下载的代码,其内容和Gitlab数据是一致的。BLOG:https://www.cnblogs.com/yinzhengjie/[root@git.yinzhengjie.org.cn ~]#

 

 

五.配置Gerrit和Gitlab互信

1>.在Gerrit服务器上配置和Gitlab互信

[root@gerrit.yinzhengjie.org.cn ~]# ssh-copy-id root@gitlab.yinzhengjie.org.cn/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysroot@gitlab.yinzhengjie.org.cn's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'root@gitlab.yinzhengjie.org.cn'"and check to make sure that only the key(s) you wanted were added.[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# ssh gitlab.yinzhengjie.org.cnLast login: Tue Jun 25 02:31:58 2019 from 172.30.1.1[root@gitlab.yinzhengjie.org.cn ~]# [root@gitlab.yinzhengjie.org.cn ~]# whoroot     pts/0        2019-06-25 02:31 (172.30.1.1)root     pts/1        2019-06-25 06:09 (172.30.1.81)[root@gitlab.yinzhengjie.org.cn ~]# [root@gitlab.yinzhengjie.org.cn ~]# logoutConnection to gitlab.yinzhengjie.org.cn closed.[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]#

2>.在Gitlab上配置和Gerrit互信

[root@gitlab.yinzhengjie.org.cn ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsaGenerating public/private rsa key pair.Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:vlO7fU06xQYclRWDbjs6hKCp/zX+OSCSh6gLFJBDpPY root@gitlab.yinzhengjie.org.cnThe key's randomart image is:+---[RSA 2048]----+|++            .+*||=            ....||.+          .. . ||. o    .     oo  || . E. = S . . .o ||.  . * + o.. o  =||. . . o o+o.. .* ||.. .    +.o=. + .|| .. .....oo++. . |+----[SHA256]-----+[root@gitlab.yinzhengjie.org.cn ~]# [root@gitlab.yinzhengjie.org.cn ~]# [root@gitlab.yinzhengjie.org.cn ~]# ssh-copy-id gerrit.yinzhengjie.org.cn/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"The authenticity of host 'gerrit.yinzhengjie.org.cn (172.30.1.81)' can't be established.ECDSA key fingerprint is SHA256:dxYzHaEpkoSjSE0UDEtz14Y4dCn+GX3HJZ+P8AzsF54.ECDSA key fingerprint is MD5:f6:a9:3b:12:2c:44:2f:e3:d7:2f:0b:fb:b2:33:4f:99.Are you sure you want to continue connecting (yes/no)? yes/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysroot@gerrit.yinzhengjie.org.cn's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'gerrit.yinzhengjie.org.cn'"and check to make sure that only the key(s) you wanted were added.[root@gitlab.yinzhengjie.org.cn ~]# [root@gitlab.yinzhengjie.org.cn ~]# ssh gerrit.yinzhengjie.org.cnLast login: Tue Jun 25 03:28:02 2019[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# whoroot     pts/0        2019-06-25 02:31 (172.30.1.1)root     pts/1        2019-06-25 03:26 (172.30.1.1)root     pts/2        2019-06-25 06:12 (172.30.1.80)[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# logoutConnection to gerrit.yinzhengjie.org.cn closed.[root@gitlab.yinzhengjie.org.cn ~]# [root@gitlab.yinzhengjie.org.cn ~]#

 

六.在Gerrit服务器上编辑同步Gitlab的配置文件

1>.编辑 “review_site/.ssh/config”配置文件,需要手动创建(同步gitlab的项目用的

 

[root@gerrit.yinzhengjie.org.cn ~]# ll review_site/etc/total 52-rw-r--r-- 1 root root  788 Jun 25 03:27 gerrit.configdrwxr-xr-x 2 root root 4096 Jun 25 03:27 mail-rw------- 1 root root   99 Jun 25 03:26 secure.config-rw------- 1 root root  288 Jun 25 03:26 ssh_host_ecdsa_384_key-rw-r--r-- 1 root root  250 Jun 25 03:26 ssh_host_ecdsa_384_key.pub-rw------- 1 root root  365 Jun 25 03:26 ssh_host_ecdsa_521_key-rw-r--r-- 1 root root  298 Jun 25 03:26 ssh_host_ecdsa_521_key.pub-rw------- 1 root root  227 Jun 25 03:26 ssh_host_ecdsa_key-rw-r--r-- 1 root root  206 Jun 25 03:26 ssh_host_ecdsa_key.pub-rw------- 1 root root  444 Jun 25 03:26 ssh_host_ed25519_key-rw-r--r-- 1 root root  126 Jun 25 03:26 ssh_host_ed25519_key.pub-rw------- 1 root root 1675 Jun 25 03:26 ssh_host_rsa_key-rw-r--r-- 1 root root  426 Jun 25 03:26 ssh_host_rsa_key.pub[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# mkdir review_site/.ssh[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# vi review_site/.ssh/config[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# cat review_site/.ssh/config  HOST 172.30.1.80        # 这个IP是gitlab服务器的IP地址 IdentityFile ~/.ssh/id_rsa PreferredAuthenticationns publickey[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# ll review_site/.ssh/config -rw-r--r-- 1 root root 85 Jun 25 07:09 review_site/.ssh/config[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# chmod 600 review_site/.ssh/config       #修改权限~降低安全风险[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# ll review_site/.ssh/config -rw------- 1 root root 85 Jun 25 07:09 review_site/.ssh/config[root@gerrit.yinzhengjie.org.cn ~]#

 

2>.配置gerrit replication功能(用于复制具体项目)

[root@gerrit.yinzhengjie.org.cn ~]# ll review_site/total 12drwxr-xr-x 2 root root   84 Jun 25 03:27 bindrwxr-xr-x 2 root root 4096 Jun 25 03:28 cachedrwxr-xr-x 5 root root   69 Jun 25 03:31 datadrwxr-xr-x 2 root root   78 Jun 25 03:28 dbdrwxr-xr-x 3 root root 4096 Jun 25 07:05 etcdrwxr-xr-x 2 root root    6 Jun 25 03:25 gitdrwxr-xr-x 6 root root  114 Jun 25 03:27 indexdrwxr-xr-x 2 root root    6 Jun 25 03:20 libdrwxr-xr-x 2 root root  130 Jun 25 03:28 logsdrwxr-xr-x 2 root root  288 Jun 25 03:27 pluginsdrwxr-xr-x 2 root root    6 Jun 25 03:20 staticdrwx------ 2 root root 4096 Jun 25 03:28 tmp[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]# cat ~/review_site/etc/replication.config      #该文件需要手动创建[remote "yinzhengjie_code"]                                    #remote后面是项目名称projects =  yinzhengjie_code                                   #也是项目名称url = git@gitlab.yinzhengjie.org.cn:root/yinzhengjie_code.git               #就是你gitlab服务器上面的项目刻隆地址,注意,这边使用提ssh协议进行刻隆的, 所以不要选择http方式了。push = +refs/heads/*:refs/heads/*push = +refs/tags/*:refs/tags/*push = +refs/changes/*:refs/changes/*threads = 3[root@gerrit.yinzhengjie.org.cn ~]# [root@gerrit.yinzhengjie.org.cn ~]#

 3>.重启Gerrit服务

[root@gerrit.yinzhengjie.org.cn ~]# cd review_site/bin/[root@gerrit.yinzhengjie.org.cn ~/review_site/bin]# lltotal 67132-rwxr-xr-x 1 root root      438 Jun 25 03:27 gerrit.service-rwxr-xr-x 1 root root    16094 Jun 25 03:27 gerrit.sh-rwxr-xr-x 1 root root      109 Jun 25 03:27 gerrit.socket-rw-r--r-- 1 root root 68714982 Jun 25 03:26 gerrit.war[root@gerrit.yinzhengjie.org.cn ~/review_site/bin]# [root@gerrit.yinzhengjie.org.cn ~/review_site/bin]# ./gerrit.sh restartStopping Gerrit Code Review: OKStarting Gerrit Code Review: OK[root@gerrit.yinzhengjie.org.cn ~/review_site/bin]#

 

七.验证Gerrit和Gitlab的集成效果-使用客户端直接提交代码到Gitlab

 1>.客户端克隆Gerrit代码后直接提交给master分支

[root@git.yinzhengjie.org.cn ~]# git clone "ssh://admin@gerrit.yinzhengjie.org.cn:29418/yinzhengjie_code"Cloning into 'yinzhengjie_code'...remote: Counting objects: 3, doneremote: Finding sources: 100% (3/3)remote: Total 3 (delta 0), reused 3 (delta 0)Receiving objects: 100% (3/3), done.[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# lltotal 0drwxr-xr-x 3 root root 35 Jun 25 07:16 yinzhengjie_code[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# cd yinzhengjie_code/[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# lltotal 4-rw-r--r-- 1 root root 41 Jun 25 07:16 README.md[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# echo "https://www.cnblogs.com/yinzhengjie/" >> blog.txt[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# lltotal 8-rw-r--r-- 1 root root 37 Jun 25 07:17 blog.txt-rw-r--r-- 1 root root 41 Jun 25 07:16 README.md[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# git add blog.txt [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# git config --global user.name "admin"[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# git config --global user.email "admin@yinzhengjie.org.cn"[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# git commit -m "add blog.txt"[master d064e5b] add blog.txt 1 file changed, 1 insertion(+) create mode 100644 blog.txt[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# git push            #我们直接提交到master,数据会直接提交的Gerrit中,而我们在Gerrit中编写了同步的文件,因此,咱们没有通过Gerrit审核就直接提交到gitlab中去啦!!!生产环境并不推荐这样搞warning: push.default is unset; its implicit value is changing inGit 2.0 from 'matching' to 'simple'. To squelch this messageand maintain the current behavior after the default changes, use:  git config --global push.default matchingTo squelch this message and adopt the new behavior now, use:  git config --global push.default simpleSee 'git help config' and search for 'push.default' for further information.(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode'current' instead of 'simple' if you sometimes use older versions of Git)Counting objects: 4, done.Delta compression using up to 4 threads.Compressing objects: 100% (2/2), done.Writing objects: 100% (3/3), 312 bytes | 0 bytes/s, done.Total 3 (delta 0), reused 0 (delta 0)remote: Processing changes: refs: 1, done    To ssh://admin@gerrit.yinzhengjie.org.cn:29418/yinzhengjie_code   23b4540..d064e5b  master -> master[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]#

 

2>.查看Gerrit日志

[root@gerrit.yinzhengjie.org.cn ~]# cat review_site/logs/replication_log [2019-06-25 07:20:16,220] [] scheduling replication yinzhengjie_code:refs/heads/master => git@gitlab.yinzhengjie.org.cn:root/yinzhengjie_code.git[2019-06-25 07:20:16,245] [] scheduled yinzhengjie_code:refs/heads/master => [edcdfd7f] push git@gitlab.yinzhengjie.org.cn:root/yinzhengjie_code.git to run after 15s[2019-06-25 07:20:31,248] [edcdfd7f] Replication to git@gitlab.yinzhengjie.org.cn:root/yinzhengjie_code.git started...[2019-06-25 07:20:31,285] [edcdfd7f] Push to git@gitlab.yinzhengjie.org.cn:root/yinzhengjie_code.git references: [RemoteRefUpdate[remoteName=refs/heads/master, NOT_ATTEMPTED, (null)...d064e5b53b48fe757ceea8714ff49de200ed2949, srcRef=refs/heads/master, forceUpdate, message=null]][2019-06-25 07:20:32,073] [edcdfd7f] Replication to git@gitlab.yinzhengjie.org.cn:root/yinzhengjie_code.git completed in 824ms, 15004ms delay, 0 retries[root@gerrit.yinzhengjie.org.cn ~]#

3>.查看gitlab库中的文件

4>.查看blog.txt文件内容,的确和我们写的文件内容是一致的

 

八.验证Gerrit和Gitlab的集成效果-使用客户端提交代码到Gerrit后,由Gerrit审核通过后在提交到Gitlab

1>.客户端克隆Gerrit代码后直接提交给master分支

[root@git.yinzhengjie.org.cn ~]# git clone "ssh://admin@gerrit.yinzhengjie.org.cn:29418/yinzhengjie_code" && scp -p -P 29418 admin@gerrit.yinzhengjie.org.cn:hooks/commit-msg "yinzhengjie_code/.git/hooks/"Cloning into 'yinzhengjie_code'...remote: Counting objects: 6, doneremote: Finding sources: 100% (6/6)remote: Total 6 (delta 0), reused 6 (delta 0)Receiving objects: 100% (6/6), 532 bytes | 0 bytes/s, done.commit-msg                                                                                                                                          100% 1790     1.0MB/s   00:00    [root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# cd yinzhengjie_code/[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# lltotal 8-rw-r--r-- 1 root root 37 Jun 25 09:06 blog.txt-rw-r--r-- 1 root root 41 Jun 25 09:06 README.md[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# echo "尹正杰" > name.list[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# git config --global user.name "admin"[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# git config --global user.email "admin@yinzhengjie.org.cn"[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# git add name.list[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# git commit -m "add name.list"[master ce71335] add name.list 1 file changed, 1 insertion(+) create mode 100644 name.list[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# git push origin HEAD:refs/for/masterCounting objects: 3, done.Delta compression using up to 4 threads.Compressing objects: 100% (2/2), done.Writing objects: 100% (3/3), 356 bytes | 0 bytes/s, done.Total 3 (delta 0), reused 0 (delta 0)remote: Processing changes: refs: 1, new: 1, done    remote: remote: SUCCESSremote: remote:   http://gerrit.yinzhengjie.org.cn/c/yinzhengjie_code/+/1 add name.list [NEW]remote: To ssh://gerrit.yinzhengjie.org.cn:29418/yinzhengjie_code * [new branch]      HEAD -> refs/for/master[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# [root@git.yinzhengjie.org.cn ~/yinzhengjie_code]# git --version        #需要注意的是,git版本最好使用git2.X版本哟~,否则在将代码push到Gerrit的时候可能会报错~在Gerrit服务端git版本好像git1.X版本也可以正常使用。git version 2.12.2[root@git.yinzhengjie.org.cn ~/yinzhengjie_code]#

2>.查看Gerrit的Web UI界面

3>.在Gerrit还没有通过审批之前,我们克隆一下Gerrit代码

[root@git.yinzhengjie.org.cn ~]# ll yinzhengjie_code/            #这是我们提交到Gerrit的代码total 12-rw-r--r-- 1 root root 37 Jun 25 09:06 blog.txt-rw-r--r-- 1 root root 10 Jun 25 09:06 name.list-rw-r--r-- 1 root root 41 Jun 25 09:06 README.md[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# rm -rf yinzhengjie_code/          #我们将源文件删除[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# git clone "ssh://admin@gerrit.yinzhengjie.org.cn:29418/yinzhengjie_code"      #从Gerrit的库中clone一份出来,观察里面的内容。Cloning into 'yinzhengjie_code'...remote: Counting objects: 6, doneremote: Finding sources: 100% (6/6)remote: Total 6 (delta 0), reused 6 (delta 0)Receiving objects: 100% (6/6), done.[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# ll yinzhengjie_code/            #很显然,代码库中并没有我们提交的代码total 8-rw-r--r-- 1 root root 37 Jun 25 09:12 blog.txt-rw-r--r-- 1 root root 41 Jun 25 09:12 README.md[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]#

4>.在Gerrit还没有通过审批之前,我们克隆一下Gitlab代码

[root@git.yinzhengjie.org.cn ~]# lltotal 0drwxr-xr-x 3 root root 51 Jun 25 09:12 yinzhengjie_code[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# rm -rf yinzhengjie_code/                                #删除源文件[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# git clone git@gitlab.yinzhengjie.org.cn:root/yinzhengjie_code.git        #将gitlab的代码克隆到本地。Cloning into 'yinzhengjie_code'...The authenticity of host 'gitlab.yinzhengjie.org.cn (172.30.1.80)' can't be established.ECDSA key fingerprint is SHA256:dxYzHaEpkoSjSE0UDEtz14Y4dCn+GX3HJZ+P8AzsF54.ECDSA key fingerprint is MD5:f6:a9:3b:12:2c:44:2f:e3:d7:2f:0b:fb:b2:33:4f:99.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'gitlab.yinzhengjie.org.cn,172.30.1.80' (ECDSA) to the list of known hosts.remote: Counting objects: 6, done.remote: Compressing objects: 100% (3/3), done.remote: Total 6 (delta 0), reused 0 (delta 0)Receiving objects: 100% (6/6), done.[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# ll yinzhengjie_code/            #很显然,我们发现提交的代码既不在Gerrit中也不再Gitlab中。total 8-rw-r--r-- 1 root root 37 Jun 25 09:16 blog.txt-rw-r--r-- 1 root root 41 Jun 25 09:16 README.md[root@git.yinzhengjie.org.cn ~]#

5>.评审Chenge

6>.点击"Submit",会将代码同步到Gerrit存储库,需要注意的是,Gerrit存储库我们配置和Gitla集成,因此2个同名的存储库数据应该时一致的哟~

7>点击“CONTINUE”

8>.Change提交成功

9>.查看Change状态

10>.在Gerrit通过审批之后,我们克隆一下Gerrit代码

[root@git.yinzhengjie.org.cn ~]# lltotal 0drwxr-xr-x 3 root root 51 Jun 25 09:16 yinzhengjie_code[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# ll yinzhengjie_code/                                       #在审核之前,我们发现代码并没有被合并到主分支total 8-rw-r--r-- 1 root root 37 Jun 25 09:16 blog.txt-rw-r--r-- 1 root root 41 Jun 25 09:16 README.md[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# rm -rf yinzhengjie_code[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# git clone "ssh://admin@gerrit.yinzhengjie.org.cn:29418/yinzhengjie_code"        #当我们审批通过后,再次clone代码进行观察Cloning into 'yinzhengjie_code'...remote: Counting objects: 9, doneremote: Finding sources: 100% (9/9)Receiving objects: 100% (9/9), done.remote: Total 9 (delta 0), reused 9 (delta 0)[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# ll yinzhengjie_code/                                       #很显然,多了一个我们之前提交的文件"name.list",说明我们测试成功啦~total 12-rw-r--r-- 1 root root 37 Jun 25 09:43 blog.txt-rw-r--r-- 1 root root 10 Jun 25 09:43 name.list-rw-r--r-- 1 root root 41 Jun 25 09:43 README.md[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]#

11>.在Gerrit通过审批之后,我们克隆一下Gitlab代码

[root@git.yinzhengjie.org.cn ~]# rm -rf yinzhengjie_code/[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# git clone git@gitlab.yinzhengjie.org.cn:root/yinzhengjie_code.gitCloning into 'yinzhengjie_code'...remote: Counting objects: 9, done.remote: Compressing objects: 100% (5/5), done.remote: Total 9 (delta 1), reused 0 (delta 0)Receiving objects: 100% (9/9), done.Resolving deltas: 100% (1/1), done.[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]# ll yinzhengjie_code/                #不难发现,通过Gerrit审批后,Gitlab中的数据也被同步啦~这充分说明Gerrit和Gitlab集成成功啦~total 12-rw-r--r-- 1 root root 37 Jun 25 09:48 blog.txt-rw-r--r-- 1 root root 10 Jun 25 09:48 name.list-rw-r--r-- 1 root root 41 Jun 25 09:48 README.md[root@git.yinzhengjie.org.cn ~]# [root@git.yinzhengjie.org.cn ~]#

 

转载于:https://www.cnblogs.com/yinzhengjie/p/11057383.html

你可能感兴趣的文章
[笔记].关于Stratix III使用非易失加密后,无法正常配置启动的问题探讨
查看>>
一个通用的单元测试框架的思考和设计03-实现篇-核心类源码
查看>>
万能导出数据到Excel
查看>>
[感谢坑娘][回忆3年前]茜色的终点线....
查看>>
减少垃圾广告 让你的电子邮箱更安全
查看>>
载入史册 改变IT安全历程的十大里程碑
查看>>
UVA 624 CD
查看>>
Windows phone 7: DataBinding and UI Refresh系列教程
查看>>
矩阵快速幂 学习笔记
查看>>
linux iconv 批量转码
查看>>
使用MongoDB的GridFS保存用户文件的折腾日记
查看>>
Linux的Find使用
查看>>
ios开发工程师笔试基础题
查看>>
基于Struts构建新闻发布系统
查看>>
基于Struts实现用户登录和注册模块
查看>>
CentOS安装Apache
查看>>
C++ getline函数的使用
查看>>
SQL Server删除重复行的6个方法
查看>>
Mysql 临时表的创建和删除
查看>>
db file scattered read等待事件
查看>>