第一次接觸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建立一個自定義操做,配置以下,參數一欄是腳本所在路徑,請替換正確路徑