全量更新當(dāng)前目錄下所有GIT目錄
sh gitpull.sh
#/bin/sh
#全量更新當(dāng)前目錄下素有其它目錄
ls
pwd
echo "你將更新以上git目錄的當(dāng)前分支"
echo -e "請輸入確認(rèn)[y/n]:"
dirNameBase=${PWD}
read sure
if [[ $sure != 'y' ]]; then
echo "已取消,退出本次部署"
exit
fi
modifiedDirArray=()
for k in $(ls $(pwd))
do
cddir="${dirNameBase}/${k}"
cd ${cddir}
dirName=${PWD##*/}
echo "dirName=${dirNameBase}/${k}"
gitStatus=$(git status)
if [[ $gitStatus == *repository* ]]
then
echo "$dirName 目錄不是git倉庫"
cd ..
continue
fi
gitBranch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')
echo "操作模塊:" $dirName "中..."
if [[ $gitStatus == *modified* ]]
then
modifiedDirArray+=($dirName)
echo " 當(dāng)前分支: ${gitBranch} 存在未提交代碼,請手動更新"
else
git pull &> /dev/null
echo " 當(dāng)前分支: ${gitBranch} 已經(jīng)升級到最新"
fi
cd ..
done
modifiedCount=${#modifiedDirArray[@]}
if [ $modifiedCount -eq 0 ]; then
echo "所有模塊的當(dāng)前分支都已經(jīng)更新到最新"
else
echo "以下 $modifiedCount 個模塊未完成更新:"
printf '%s\n' "${modifiedDirArray[@]}"
fi