因为每日构建需求, 需要用脚本下载代码, 实现自动化编译, 这个脚本是整个系统的一小块功能
#!/bin/bash #@author Liuyang #@date 2015-06-23 function help() { echo "Usage: $0" echo " First argument should be the git repository's address" echo " for example: git@192.168.1.52:android/xiaomeidaojia.git" echo " Second argument should be the branch you want to checkout" echo " for example: dev" echo " If the second argument is not supplied, master will be used as default" } # Whether the given branch is in local branches. function is_in_local_branch() { git branch | grep $1 2>&1 > /dev/null return $? } # Whether the given branch is in remote branches. function is_in_remote_branch() { git branch -r | grep origin/$1 2>&1 > /dev/null return $? } if [[ $# != 1 && $# != 2 ]]; then help exit 1 fi # Judge whether the repository's address is valid. if [[ $1 != *.git ]]; then help exit 1 fi # Split the project's name project_name=`echo $(basename $1) | cut -d . -f 1` if [[ ! -d $project_name ]]; then git clone $1 else cd $project_name git reset HEAD --hard git pull if [[ $2 == "" ]]; then exit fi is_in_local_branch $2 if [[ $? == 0 ]]; then git checkout $2 exit fi is_in_remote_branch $2 if [[ $? == 0 ]]; then git checkout -b $2 origin/$2 fi fi
否则会回退所有更改, 然后执行拉取操作, 最后会切换到给定分支.
原文地址:http://blog.csdn.net/liuyanggofurther/article/details/46602721