#! /bin/bash # 目录空间 HOME_DIR="/Users/chenyuan" WORK_DIR=$HOME_DIR"/Workspaces/xxx" // 替换为你的工作目录 # 过滤目录 EXCLUDE_DIR_OR_FILE=("cr-test-demo" "git_batch_co_brach.sh" "git_batch_co_push_remote.sh" "git_batch_co_merge_push_remote.sh") # 分支名字 OLD_BR_NAME="$1" NEW_BR_NAME="$2" # 校验参数 if [ -f $OLD_BR_NAME ]; then echo "Please input your old branch name." exit 0 fi
if [ -f $NEW_BR_NAME ]; then echo "Please input your new branch name." exit 0 fi # 切换到某个分支 function gitCheckoutBrachAndPushRemote() { echo "-------- $1 --------" cd "$1" pwd git checkout $OLD_BR_NAME git fetch git pull git checkout -b $NEW_BR_NAME $OLD_BR_NAME git push --set-upstream origin $NEW_BR_NAME echo "success push branch " $NEW_BR_NAME " to remote" } ## get all folder in "$WORK_DIR" for i in `ls "$WORK_DIR"`;do cd "$WORK_DIR" if [[ -d $i ]] && [[ ! "${EXCLUDE_DIR_OR_FILE[@]}" =~ "${i}" ]];then gitCheckoutBrachAndPushRemote "$i" fi done
#! /bin/bash # 目录空间 HOME_DIR="/Users/chenyuan" WORK_DIR=$HOME_DIR"/Workspaces/xxx" // 替换为你的工作目录 # 过滤目录 EXCLUDE_DIR_OR_FILE=("cr-test-demo" "git_batch_co_brach.sh" "git_batch_co_push_remote.sh" "git_batch_co_merge_push_remote.sh") # 分支名字 TAG_NAME=$1 # 校验参数 if [ -f $TAG_NAME ]; then echo "Please input your tag name." exit 0 fi # 切换到某个分支 function doSomething() { cd "$1" pwd git fetch git checkout master git tag -a $TAG_NAME -m "创建分支$TAG_NAME" echo "success create tag " $TAG_NAME git push origin --tags echo "success push tag to remote" $TAG_NAME } ## get all folder in "$WORK_DIR" for i in `ls "$WORK_DIR"`;do cd "$WORK_DIR" if [[ -d $i ]] && [[ ! "${EXCLUDE_DIR_OR_FILE[@]}" =~ "${i}" ]];then doSomething "$i" fi done
具体使用,首先切换为master分支。
1
./git_batch_tag_push.sh v1.0.0
06-批量mvn打包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#! /bin/bash # 目录空间 HOME_DIR="/Users/chenyuan" WORK_DIR=$HOME_DIR"/Workspaces/xxx" // 替换为你的工作目录 # 需要deploy的工程 NEED_DEPLOY_DIR_OR_FILE=("xxxx") // 这里添加你要打包的项目名称,空格分开 ## get all folder in "$WORK_DIR" for i in "${NEED_DEPLOY_DIR_OR_FILE[@]}";do #cd"$WORK_DIR" echo "$WORK_DIR/$i"; cd "$WORK_DIR/$i"; git pull mvn install deploy -Dpmd.skip=true -Dcheckstyle.skip=true -Dmaven.test.skip=true done