SourceTree 提交代码到gerrit

1.使用git向gerrit提交代码的两种方式:
//方式1:直接提交
git push origin HEAD:ref/for/branch(分支名称)

直接提交需要输入一串与分支名无关的字符,这与gerrit的临时分支有关,可以通过设置避免每次都输入:
在仓库根目录下执行一次命令:

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上配置一个执行这个脚本的快捷操作,如下所示:


找到自定义操作点击编辑.png

新建一个自定义操作.png

然后每次提交的时候不在点击SourceTree的提交,而是选择你创建的自定义操作,如下图所示:


使用.png
3.在mac上的坑

在mac上发现第一种提交方式会失败,必须要使用第二种方式提交,所以只好修改下脚本,如下:

#需要先执行一次该命令:git config remote.origin.push refs/heads/*:refs/for/*

# 获取当前分支名
branch=`git symbolic-ref --short -q HEAD`
# push 注意是ref不是refs
git push origin ${branch}

个人感觉通过在sourceTree创建自定义操作的方式依旧不方便,还不如在命令行中直接执行上面的脚本文件(前提是你的编译器自带命令窗口...)。

你可能感兴趣的:(SourceTree 提交代码到gerrit)