Git 项目管理工具脚本 🛠️

功能强大的图形化 Git 多仓库管理工具,提升开发效率
📋 文章目录
🌟 工具概述
Git 项目管理工具是一个功能强大的 Bash 脚本,提供图形化界面来高效管理多个 Git 仓库。专为需要同时处理多个项目的开发者设计!✨
🎯 设计理念:
- 一站式管理:统一界面管理所有 Git 仓库操作
- 批量处理:支持同时操作多个仓库,节省时间
- 可视化反馈:清晰的状态指示和进度显示
- 安全可靠:包含安全检查和安全操作确认
🚀 适用场景:
- 🔧 多项目开发:同时维护多个相关项目
- 🏢 团队协作:统一团队成员的 Git 操作流程
- 📦 版本发布:简化标签管理和版本发布流程
- 🚀 快速部署:在新环境中快速克隆和配置所有仓库
💡 效率提升:使用此工具,管理 10 个仓库的时间从原来的 15 分钟减少到 2 分钟,效率提升 87%!
🚀 快速开始
1. 从 GitHub 运行
1 2 3 4 5
| bash <(curl -sL https://raw.githubusercontent.com/meimolihan/script/master/sh/git/git-manager-tool.sh)
bash <(curl -sL https://cdn.jsdelivr.net/gh/meimolihan/script/sh/git/git-manager-tool.sh)
|
2. 从 Gitee 运行(国内加速)
1 2 3 4 5
| bash <(curl -sL https://gitee.com/meimolihan/script/raw/master/sh/git/git-manager-tool.sh)
bash <(curl -sL http://180.76.76.73/script/raw/master/sh/git/git-manager-tool.sh)
|

3. 本地安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| curl -o git-manager.sh https://gitee.com/meimolihan/script/raw/master/sh/git/git-manager-tool.sh
chmod +x git-manager.sh
sha256sum git-manager.sh
./git-manager.sh
sudo cp git-manager.sh /usr/local/bin/git-manager
|
🎯 核心功能
1. 📥 拉取当前仓库更新
使用场景:
- 每日开始工作前同步最新代码
- 获取团队成员的更改
- 确保本地仓库与远程同步
2. 📤 推送当前仓库更改
1 2 3 4 5 6
| git push origin $(git branch --show-current)
|
使用场景:
- 推送本地提交到远程仓库
- 分享代码更改给团队成员
- 部署前的代码推送
3. 🏷️ 标签管理功能
使用场景:
4. 📥 批量拉取更新
1 2 3 4 5 6 7 8 9
| find . -name ".git" -type d | while read gitdir; do repo_path=$(dirname "$gitdir") cd "$repo_path" && git pull --ff-only done
|
使用场景:
- 定期同步所有项目
- 新一天开始前的准备工作
- 多项目依赖更新
5. 📤 批量推送更新
1 2 3 4 5 6 7 8
| git status --porcelain | if grep -q "M\|A\|D\|R"; then git push origin $(git branch --show-current) fi
|
使用场景:
- 一天工作结束后的代码提交
- 多个相关项目同时发布
- 团队协作时的批量更新
6. 📦 仓库克隆管理
1 2 3 4 5 6 7 8 9
| while read repo_url; do git clone "$repo_url" done < repo-list.txt
|
使用场景:
⚙️ 安装与配置
1. 全局安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| curl -o /usr/local/bin/git-manager \ https://gitee.com/meimolihan/script/raw/master/sh/git/git-manager-tool.sh
chmod +x /usr/local/bin/git-manager
git-manager --version
echo "alias gm='git-manager'" >> ~/.bashrc source ~/.bashrc
gm
|
2. 配置文件
创建 ~/.git-manager.conf
进行个性化配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
IGNORE_DIRS=("node_modules" "vendor" "dist" "build" ".cache")
DEFAULT_REMOTE="origin"
THEME="auto"
AUTO_CONFIRM=false
LOG_FILE="$HOME/.git-manager.log"
MAX_DEPTH=3
PULL_TIMEOUT=300 PUSH_TIMEOUT=300 CLONE_TIMEOUT=600
|
3. 仓库列表格式
创建仓库列表文件用于批量克隆:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
git@github.com:user/repo1.git git@gitee.com:user/repo2.git
https://github.com/user/repo3.git https://gitee.com/user/repo4.git
git@github.com:user/frontend.git
git@github.com:user/backend.git
git@github.com:user/docs.git
|
🖥️ 界面与交互
1. 主界面预览
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| 🛠️ Git 项目管理工具 v1.0 ======================================== 📁 当前目录: /home/user/projects 🔍 找到 5 个 Git 仓库:
[1] ✅ project-api (main) ✓ 最新 [2] ⚠️ project-web (develop) • 有更新 [3] ❌ project-docs (main) ✗ 有修改 [4] ✅ project-mobile (feature/login) ✓ 最新 [5] ⚡ project-admin (main) ⚡ 有未推送提交
======================================== 📊 状态说明: ✅ 最新 ⚠️ 可更新 ❌ 有修改 ⚡ 待推送
请选择操作: * 1. 📥 拉取当前仓库更新 * 2. 📤 推送当前仓库更改 * 3. 🏷️ 更改当前仓库标签 * 4. 📥 拉取所有仓库更新 * 5. 📤 推送所有仓库更新 * 6. 📦 克隆所有仓库菜单 * 7. ⚙️ 设置与配置 * 0. 🚪 退出
请输入操作编号(0-7):
|
2. 快捷键支持
Ctrl+C
- 取消当前操作,返回主菜单
Enter
- 确认选择或输入
1-7
- 直接选择对应菜单项
0
- 快速退出程序
q
- 退出当前子菜单
h
- 显示帮助信息
3. 状态指示器
图标 |
含义 |
说明 |
✅ |
最新 |
仓库与远程同步,无本地修改 |
⚠️ |
可更新 |
远程有更新可拉取 |
❌ |
有修改 |
本地有未提交的修改 |
⚡ |
待推送 |
本地有未推送的提交 |
🚫 |
错误 |
仓库状态异常或操作失败 |
🔄 |
处理中 |
操作正在进行中 |
🔧 高级功能
1. 自定义配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
IGNORE_PATTERNS=("*-old" "temp-*" "backup-*")
SHOW_BRANCH_ICONS=true BRANCH_ICONS=("🌿" "🚀" "🔧" "📦" "🎨")
COLOR_SUCCESS="32" COLOR_WARNING="33" COLOR_ERROR="31" COLOR_INFO="36"
HTTP_PROXY="http://proxy.example.com:8080" HTTPS_PROXY="http://proxy.example.com:8080"
MAX_RETRY=3 RETRY_DELAY=5
|
2. 批量操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
MAX_CONCURRENT=3
OPERATION_TIMEOUT=300
SKIP_CONFIRMATION=false
VERBOSE_OUTPUT=false
TARGET_BRANCHES=("main" "develop" "master")
|
3. 网络优化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
GIT_COMPRESSION_LEVEL=6
SHALLOW_CLONE=true CLONE_DEPTH=50
DOWNLOAD_LIMIT=1024 UPLOAD_LIMIT=512
CONNECT_TIMEOUT=30
AUTO_RETRY=true MAX_NETWORK_RETRY=5
|
🎮 使用示例
1. 日常更新流程
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| git-manager
git-manager
git-manager
|
2. 版本发布流程
1 2 3 4 5 6 7 8 9 10 11 12
| git-manager
|
3. 新环境搭建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| mkdir projects && cd projects
git-manager
|
⚠️ 注意事项
1. 权限要求
- 读取权限:需要对所有要扫描的目录有读权限
- 写入权限:推送操作需要远程仓库的写入权限
- 网络访问:需要能够访问 Git 远程仓库
- SSH 配置:使用 SSH URL 需要提前配置 SSH 密钥
2. 冲突处理
1 2 3 4 5 6 7 8 9 10
| 1. 工具会检测到冲突并显示警告 2. 需要手动解决冲突: - 编辑冲突文件 - 使用 git add 标记已解决 - 完成合并提交 3. 重新尝试操作
|
3. 备份策略
- 定期备份:重要仓库定期推送到远程
- 多重备份:使用多个远程仓库(GitHub + Gitee)
- 本地备份:定期压缩备份重要仓库
- 验证备份:定期验证备份的完整性和可恢复性
❌ 故障排除
1. 常见问题
问题:脚本无法运行
1 2 3 4 5
| chmod +x git-manager.sh
bash --version
|
问题:网络连接超时
1 2 3
|
HTTP_PROXY="http://proxy.example.com:8080"
|
问题:权限被拒绝
2. 解决方案
启用详细日志:
1 2 3 4 5
| bash -x git-manager.sh
tail -f ~/.git-manager.log
|
检查依赖项:
1 2 3 4 5 6 7 8 9 10 11
| command -v git >/dev/null 2>&1 || { echo "Git 未安装,请先安装 Git" exit 1 }
command -v curl >/dev/null 2>&1 || { echo "curl 未安装,请先安装 curl" exit 1 }
|
重置配置:
1 2 3 4
| rm -f ~/.git-manager.conf
|
🎉 总结:Git 项目管理工具通过提供统一的图形化界面,极大地简化了多仓库管理的复杂性。无论是日常开发、版本发布还是环境搭建,都能提供高效可靠的支持。
💪 实践建议:
- 将工具集成到日常开发流程中
- 定期更新工具以获取最新功能
- 根据团队需求定制配置文件
- 培训团队成员使用统一的工作流程
🚀 现在就开始使用这个强大的工具,提升您的 Git 项目管理效率吧!