本文目录导读:

可以批量推送,以下是几种实用方法:
使用脚本批量推送
Git Bash 脚本
#!/bin/bash
# batch-push.sh
# 配置仓库列表
repos=(
"/path/to/repo1"
"/path/to/repo2"
"/path/to/repo3"
)
for repo in "${repos[@]}"; do
cd "$repo" || continue
echo "Pushing $repo..."
git add .
git commit -m "批量更新 $(date)"
git push origin main
echo "✅ $repo 推送完成"
done
Python 脚本
import subprocess
import os
repos = [
"/path/to/repo1",
"/path/to/repo2",
"/path/to/repo3"
]
for repo in repos:
os.chdir(repo)
print(f"开始推送: {repo}")
subprocess.run(["git", "add", "."])
subprocess.run(["git", "commit", "-m", "批量更新"])
subprocess.run(["git", "push", "origin", "main"])
一键批量推送工具
使用 git-yolo
# 安装 npm install -g git-yolo # 批量推送 git yolo -m "批量更新"
使用 git-pull-all
# 安装 npm install -g git-pull-all # 批量拉取和推送 git-pull-all git-push-all
实用场景脚本
多分支推送
#!/bin/bash
# push-all-branches.sh
for branch in $(git branch | sed 's/* //'); do
git checkout $branch
git push origin $branch
done
定时批量推送 (Cron)
# crontab -e 添加 0 */6 * * * /path/to/batch-push.sh
注意事项
⚠️ 安全建议:
- 使用 SSH 密钥验证避免重复输入密码
- 配置 git credential helper 自动保存凭证
- 测试脚本先在测试仓库运行
高级功能
带日志推送
#!/bin/bash
LOG_FILE="push-$(date +%Y%m%d).log"
batch_push() {
echo "[$(date)] 开始批量推送" >> $LOG_FILE
for repo in $@; do
cd $repo
git push origin main 2>&1 | tee -a $LOG_FILE
done
}
需要我帮你写一个特定场景的批量推送脚本吗?比如针对多个仓库、多分支或带错误处理的版本。