1.使用git向gerrit提交代碼的兩種方式:
//方式1:直接提交
git push origin HEAD:ref/for/branch(分支名稱)
直接提交需要輸入一串與分支名無關(guān)的字符,這與gerrit的臨時分支有關(guān),可以通過設(shè)置避免每次都輸入:
在倉庫根目錄下執(zhí)行一次命令:
git config remote.origin.push refs/heads/*:refs/for/*
然后以后提交的時候如下:
git push origin branch(分支名稱)
2.使用SourceTree向gerrit提交代碼
思路就是:寫一個shell腳本(比如名字是pushToGerrit.sh),自動獲取當前的git分支名,然后git push就可以了,腳本如下:
(注意以下腳本在mac上依舊無法push...這些資料來自windows上的童鞋,在mac上的操作請看第3步)
# 獲取當前分支名
branch=`git symbolic-ref --short -q HEAD`
# push review
git push origin HEAD:ref/for/${branch}
最后在SourceTree上配置一個執(zhí)行這個腳本的快捷操作,如下所示:

找到自定義操作點擊編輯.png

新建一個自定義操作.png
然后每次提交的時候不在點擊SourceTree的提交,而是選擇你創(chuàng)建的自定義操作,如下圖所示:

使用.png
3.在mac上的坑
在mac上發(fā)現(xiàn)第一種提交方式會失敗,必須要使用第二種方式提交,所以只好修改下腳本,如下:
#需要先執(zhí)行一次該命令:git config remote.origin.push refs/heads/*:refs/for/*
# 獲取當前分支名
branch=`git symbolic-ref --short -q HEAD`
# push 注意是ref不是refs
git push origin ${branch}
個人感覺通過在sourceTree創(chuàng)建自定義操作的方式依舊不方便,還不如在命令行中直接執(zhí)行上面的腳本文件(前提是你的編譯器自帶命令窗口...)。