Git同步Master分支并备份项目
脚本内容
shell
#!/usr/bin/env bash
# 作用:保证本地代码和 master 分支的最新状态一致
# author odboy
echo '警告:同步操作会放弃本地所有变更,延迟5s后开始执行同步操作'
sleep 5
echo '同步master分支开始'
find . -type d -name '.git' | while read gitdir; do
project_dir=$(dirname "$gitdir")
echo "进入项目目录: $project_dir"
(cd "$project_dir" && git reset HEAD -- . && git checkout -- . && git pull origin master)
echo "--------------------------------"
done
echo '同步master分支结束'
echo '项目备份开始'
dir_name=$(date +"%Y%m%d%H%M%S")
tar \
--exclude='*/node_modules' \
--exclude='*/.idea' \
--exclude='*/target' \
--exclude='*/.mvn' \
-czvf backup_$dir_name.tgz ./
echo '项目备份完毕'命令解析
shell
# 重置暂存区
git reset HEAD -- .
# 放弃工作目录中的变更
git checkout -- .
# 从远程仓库拉取 master 分支的最新代码
git pull origin master
