第一次接触gerrit,会对这种代码管理方式很是排斥,尤为是习惯了用sourceTree配合git进行代码管理的同窗。不爽归不爽,代码还得写,咱们的目标是让开发过程爽起来。git
关于gerrit的知识,移步这里学习:【Gerrit】Gerrit工做流程及使用手册github
不熟悉的同窗看完上面文章再继续学习。shell
咱们遇到的问题主要有如下几个:xcode
1 第一次拉取代码以前,须要配置本地git环境ssh
1 sourceTree的某些功能不能使用了,让人不爽。好比没法直接pushide
2 提交代码过程当中,若是冲突,gerrit默认不给merger权限。怎么处理?学习
1、 首次git配置ui
1 设置Git的用户名和邮箱google
$git config --global user.name tao.wang $git config --global user.email tao.wang@xxxxx.com
2 验证spa
$git config --global user.name // tao.wang
$git config --global user.email tao.wang@xxxxx.com // tao.wang@xxxxx.com
3 建立SSH Key公私钥,并上传gerrit。这个步骤你们很熟悉了。不知道的google。
4 配置本地gerrit
在以前建立的 .ssh文件夹中建立config文件(或直接拷贝配置好的config文件), config文件内容(注意user名称换成本身的的帐户名,port端口默认29418,有些公司会改,注意替换可用端口):
host gitserver hostname 172.16.99.xx user tao.wang port 29418 host gerrit hostname 172.16.99.xx user tao.wang port 29418 KexAlgorithms +diffie-hellman-group1-sha1
git push origin master
这是为何呢?看过【Gerrit】Gerrit工做流程及使用手册这篇文章的就会知道,gerrit增长了codereview的流程。因此会依赖一个临时分支,咱们提交代码须要提交到该临时分支。
因此,使用如下命令拉取代码:
git push origin HEAD:refs/for/master
git config remote.origin.push refs/heads/*:refs/for/*
修改config文件,无效!
第二种是建立一个自定义操做,执行脚本,脚本去正确push。事实证实好用!
1 使用xcode建立一个shell脚本,内容以下
#!/bin/sh # push.sh # KeepRunning # # Created by 王涛 on 2018/4/27. # Copyright © 2018年 niujinfeng. All rights reserved. # 获取当前分支名 branch=`git symbolic-ref --short -q HEAD` # push review git push origin HEAD:refs/for/${branch}
2 在sourceTree建立一个自定义操做,配置以下,参数一栏是脚本所在路径,请替换正确路径