一个下载git库代码的脚本
2015-06-23 10:03
295 查看
因为每日构建需求, 需要用脚本下载代码, 实现自动化编译, 这个脚本是整个系统的一小块功能
脚本中, 首先判断该git库是否存在, 不存在则克隆该仓库.
否则会回退所有更改, 然后执行拉取操作, 最后会切换到给定分支.
#!/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
脚本中, 首先判断该git库是否存在, 不存在则克隆该仓库.
否则会回退所有更改, 然后执行拉取操作, 最后会切换到给定分支.
相关文章推荐
- C/C++语言字符串操作总结大全(超详细)
- 打印机C++
- C#生成PDF总结
- Spring技术内幕:SpringIOC原理学习总结
- 好用的PHP分页类
- 1 python学习——python环境配置
- Matlab与C++混合编程(依赖OpenCV)
- C++实现多线程安全的单例模式 已测试
- Java中4大基本加密算法解析
- Java:类与继承
- C++实现多线程安全的单例模式
- spring中context:property-placeholder/元素
- qt显示图片汇总
- java加强之反射技术
- 端午节前一周周记
- spring mvc+ajax分页
- C#TextBox自动提示、自动补全、自动完成功能
- Qt for Visual Studio 版本中编译报 qtmaind.lib问题
- (6) javaweb 文件下载 ie chrome正常 但是ff下载中文名称乱码 另附上传下载代码
- 【Java编程思想】(4)多态