Awesome Sysadmin运维脚本库:Bash实用工具合集
你是否还在为Git仓库分支混乱而烦恼?手动清理分支时担心误删重要代码?本文将带你深入了解git-branch-cleanup.sh这款实用脚本,让你轻松掌握分支管理技巧,提升运维效率。读完本文,你将学会如何安全清理本地分支、自动拉取最新代码、保护关键分支,以及清理远程跟踪分支。
脚本功能概览
git-branch-cleanup.sh是Awesome Sysadmin项目中的一款Bash脚本工具,主要用于自动化清理Git仓库中的冗余分支。它具备以下核心功能:
- 自动检测当前目录是否为Git仓库
- 拉取最新代码确保分支信息同步
- 列出所有本地分支供用户查看
- 保护指定的关键分支不被删除
- 安全删除可清理的分支
- 清理已合并的远程跟踪分支
脚本工作流程
以下是脚本的工作流程图,展示了从仓库检测到分支清理的完整过程:
关键代码解析
仓库检测机制
脚本首先会检查当前目录是否存在.git文件夹,确保在Git仓库中执行操作:
if [ ! -d .git ]; then
echo "错误: 当前目录不是Git仓库"
exit 1
fi
这段代码通过-d .git判断.git目录是否存在,如果不存在则输出错误信息并退出脚本,避免在非Git仓库中执行后续操作。
分支保护策略
脚本定义了一个保护分支数组,确保关键分支不会被误删:
PROTECTED_BRANCHES=("main" "master" "dev")
你可以根据实际需求修改这个数组,添加需要保护的分支名称。
分支筛选逻辑
通过grep和awk命令筛选出可删除的分支:
BRANCHES_TO_DELETE=$(git branch | grep -v "^*" | awk '{print $1}' | grep -vwF "${PROTECTED_BRANCHES[@]}")
这段命令的作用是:
git branch列出所有本地分支grep -v "^*"排除当前所在分支awk '{print $1}'提取分支名称grep -vwF排除保护分支
用户确认机制
在执行删除操作前,脚本会提示用户确认,防止误操作:
read -p "\n确定要删除这些分支吗? (y/N) " -n 1 -r
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo -e "\n取消删除"
exit 0
fi
这种交互式设计增加了操作的安全性,让用户有机会检查待删除分支列表。
使用方法
基本使用步骤
- 进入项目目录:
cd GitHub_Trending/aw/awesome-sysadmin - 赋予脚本执行权限:
chmod +x git-branch-cleanup.sh - 运行脚本:
./git-branch-cleanup.sh
自定义保护分支
编辑git-branch-cleanup.sh文件,修改PROTECTED_BRANCHES数组:
# 修改前
PROTECTED_BRANCHES=("main" "master" "dev")
# 修改后
PROTECTED_BRANCHES=("main" "master" "dev" "release")
添加"release"分支到保护列表,防止其被误删。
注意事项
- 执行脚本前,请确保已提交所有重要更改,避免数据丢失
- 定期运行脚本可以保持仓库整洁,建议每月至少执行一次
- 对于多人协作项目,删除分支前最好与团队成员确认
- 脚本仅删除本地分支,不会影响远程仓库
相关资源
- 项目许可证:LICENSE.txt
- 贡献者统计:contributors_stats.txt
- 项目文档:README.md
通过使用git-branch-cleanup.sh脚本,你可以告别繁琐的手动分支管理,让Git仓库保持整洁高效。如果你有其他实用的运维脚本,欢迎贡献到Awesome Sysadmin项目,共同丰富这个运维工具库。记得点赞收藏本文,关注项目更新,获取更多实用运维工具!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



