#!/bin/sh  
 | 
  
 | 
Branch=master  
 | 
Tag=""  
 | 
  
 | 
# 客户端根路径  
 | 
client_path="./"  
 | 
  
 | 
# 开关 【0】不拉取 【1】冲突不拉取 【2】强拉、覆盖  
 | 
client=2  
 | 
  
 | 
  
 | 
# 标签  
 | 
t_client=$Tag  
 | 
  
 | 
  
 | 
# 路径配置  
 | 
  
 | 
  
 | 
  
 | 
# 远程Git  
 | 
g_client="http://admin@192.168.0.87:10010/r/snxx_server.git"  
 | 
  
 | 
  
 | 
  
 | 
# 无则创建;且拉取最新  
 | 
# $1 路径  
 | 
# $2 git地址  
 | 
# $3 标签  
 | 
cloneAll() {  
 | 
      
 | 
    if [ $1 = 0 ]; then return; fi  
 | 
      
 | 
    echo  
 | 
    echo "===================="  
 | 
    echo "path:"$2  
 | 
    echo "git:"$3  
 | 
    echo "tag:"$4  
 | 
    echo "===================="  
 | 
      
 | 
    # 不存在路径就创建  
 | 
    if [ ! -d $2 ];then  
 | 
        echo "第一次创建"  
 | 
        git clone $3 $2  
 | 
    fi  
 | 
      
 | 
    # 拉取  
 | 
    cd $2          
 | 
    git stash  
 | 
    git pull --progress -f      
 | 
  
 | 
    # 无标签  
 | 
    if [ -z $4 ];then          
 | 
        if [ $1 = 2 ];then  
 | 
            git checkout -B $Branch origin/${Branch} -f  
 | 
        else  
 | 
            git checkout -B $Branch origin/${Branch}  
 | 
        fi  
 | 
    else      
 | 
        #删本地标签  
 | 
        git tag -d $4          
 | 
        git pull --progress -f      
 | 
      
 | 
        #切分支  
 | 
        git checkout -B $Branch origin/${Branch} -f              
 | 
        #切标签  
 | 
        git reset $4 --hard      
 | 
    fi      
 | 
}  
 | 
  
 | 
  
 | 
copyHooks() {  
 | 
      
 | 
    if [ $1 = 0 ]; then return; fi  
 | 
      
 | 
    echo $1  
 | 
    root=$1  
 | 
    echo root  
 | 
    fileFrom=${root}"/Hooks/commit-msg"  
 | 
    fileTo=${root}"/.git/hooks/commit-msg"  
 | 
    echo $fileFrom  
 | 
    echo $fileTo  
 | 
  
 | 
    cp $fileFrom $fileTo  
 | 
}  
 | 
  
 | 
# client 一定要拉取  
 | 
if [ ! -d ${client_path} ]; then mkdir ${client_path}; fi  
 | 
if [ "`ls -A $client_path`" = "" ]; then rm -rf $client_path; fi  
 | 
cloneAll $client $client_path $g_client $t_client  
 | 
copyHooks $client_path  
 | 
  
 | 
  
 | 
echo  
 | 
read -p "操作完成,点Enter键退出" 
 |