简易自动合并git分支shell脚本

528 阅读1分钟

最近进行官网API文档发版管理,经常有批量分支要合并,所以花了十来分钟写了这样一个简易脚本,大家可以在次基础上自由发挥。

rebaseBranch(){
	if [ $1 -eq 0 ];then
		echo '请输入合并分支'
		return 1;
	fi

	local branches=$1
	local branchesArray=(`echo ${branches//,/ }`);

	for branch in $branchesArray
        do
                echo "$branch";
                git checkout $branch;
                git fetch;
                git reset --hard origin/$branch;
                git rebase origin/master;
                git push -f;
                echo '合并master';
                git checkout master;
                git pull;
                git rebase $branch;
                git push;
                echo  "${branch}合并到master";
        done
}

代码如上,我的系统是ubuntu,装了oh my zash,将上面方法定义到~/.zshrc,然后执行 source ~/.zshrc后即可使用。 使用方式如下: rebaseBranch ts_xxx,cs_xxx

代码详解:

if [ $1 -eq 0 ];then
		echo '请输入合并分支'
		return 1;
	fi

这里判断参数是否为空,如果为空即警告

local branches=$1
local branchesArray=(`echo ${branches//,/ }`);

拿到参数并转为shell里面的数组

最后循环取出做合并操作,合并部分逻辑大家可以自行修改。