使用bash sh 实现git push commit功能
背景知识
修改代码 本地commit之后 有两种方式提交gerrit
repo upload .
//上传代码到远程分支
repo upload .
git push
//上传代码到远程分支
git push hsae HEAD:refs/for/xxxxxxxx
两种方式的区别
使用repo upload上传代码不需要关心远程分支,开发者在创建本地分支和上传代码到远程分支后,不需要关心具体的远程分支是多少。而git push则需要指定远程分支提交代码,并且有可能提交到错误的远程分支上
本文所面临的的问题
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote fetch="" name="hsae " review="codeaurora.org"/>
repo manifest里没有设置正确的gerrit地址。 目前没有摸索出修改方案
权宜之计只用git push来提交
sh的git push 过程
#!/bin/bash
function do_git_push(){
cmd=`repo branch .`
branch=$(echo $cmd |awk -F "|" '{print $1}'|awk -F "*" '{print $2}' )
#echo "PATH:"`pwd`
#echo "branch:$branch "
cmd=`git remote`
caff=$(echo $cmd)
#echo "caf:$caff"
cmd=`git push $caff HEAD:refs/for/$branch`
result =$(echo $cmd)
echo "push:$result"
}
do_git_push
补充实现
可以在ubutun的.bashrc文件中加入脚本的PATH 在commit提交之后 直接执行脚本即可
# Paths
PATH=$PATH:${HOME}/bin:/usr/lib/wine/bin:/sbin:/usr/sbin:~/bin
总结
使用repo upload 更加方便
但是需要建立项目的manifest的时候进行确认 目前还没有实践