1.使用git向gerrit提交代碼的兩種方式:
//方式1:直接提交
git push origin HEAD:ref/for/branch(分支名稱)
直接提交需要輸入一串與分支名無關(guān)的字符他嚷,這與gerrit的臨時(shí)分支有關(guān),可以通過設(shè)置避免每次都輸入:
在倉庫根目錄下執(zhí)行一次命令:
git config remote.origin.push refs/heads/*:refs/for/*
然后以后提交的時(shí)候如下:
git push origin branch(分支名稱)
2.使用SourceTree向gerrit提交代碼
思路就是:寫一個(gè)shell腳本(比如名字是pushToGerrit.sh)拍霜,自動(dòng)獲取當(dāng)前的git分支名,然后git push就可以了薪介,腳本如下:
(注意以下腳本在mac上依舊無法push...這些資料來自windows上的童鞋祠饺,在mac上的操作請(qǐng)看第3步)
# 獲取當(dāng)前分支名
branch=`git symbolic-ref --short -q HEAD`
# push review
git push origin HEAD:ref/for/${branch}
最后在SourceTree上配置一個(gè)執(zhí)行這個(gè)腳本的快捷操作,如下所示:
然后每次提交的時(shí)候不在點(diǎn)擊SourceTree的提交汁政,而是選擇你創(chuàng)建的自定義操作道偷,如下圖所示:
3.在mac上的坑
在mac上發(fā)現(xiàn)第一種提交方式會(huì)失敗,必須要使用第二種方式提交记劈,所以只好修改下腳本勺鸦,如下:
#需要先執(zhí)行一次該命令:git config remote.origin.push refs/heads/*:refs/for/*
# 獲取當(dāng)前分支名
branch=`git symbolic-ref --short -q HEAD`
# push 注意是ref不是refs
git push origin ${branch}
個(gè)人感覺通過在sourceTree創(chuàng)建自定義操作的方式依舊不方便,還不如在命令行中直接執(zhí)行上面的腳本文件(前提是你的編譯器自帶命令窗口...)目木。