一个脚本将某个目录下的全部项目切换至master分支

发布于 2022-03-29 15:59:43 阅读 1187

下面就是一键切换目录下所有项目至master分支(可以改成你想要切换的分支)

#!/bin/zsh
#下面换成自己的目录
basePath="/Users/meow.zang/mywebs/"
for file in $(ls $basePath); do
  if [ -d "$file" ]
    then
      echo "++++++++"$file
      cd "$basePath$file" && git checkout master && git pull
      cd ../
  fi
done

当然如果你想要某些项目切换至指定的分支,也可以使用如下的命令

#!/bin/bash

#项目 => 分支名称(你要单独切换的分支)
directBranch=(
  ["server"]="master"
  ["CRM"]="master"
)

#上面对应的项目列表
directProject=(
  "server"
  "CRM"
)

#下面换成自己的目录
basePath="/Users/meow.zang/mywebs/duapp/"

#先切换至release分支
for file in $(ls $basePath); do
  if [ -d "$file" ]
    then
      echo "++++++++"$file
      cd "$basePath$file" && git checkout release && git pull
      cd ../
  fi
done

# 在directProject这些目录中,会切换 directBranch 对应的分支
for project in "${directProject[@]}"; do
  echo "----- cd $basePath$project && git checkout ${directBranch[$project]}"
  cd "$basePath$project" && git checkout "${directBranch[$project]}"
  cd ../
done