#!/bin/bash set -euo pipefail ROOT_DIR=$(git rev-parse --show-toplevel) BRANCH=$(git branch --show-current) if [[ -z "$BRANCH" ]]; then echo "当前仓库处于 detached HEAD 状态,无法推送当前分支" >&2 exit 1 fi cd "$ROOT_DIR" REMOTES=() while IFS= read -r REMOTE; do REMOTES+=("$REMOTE") done < <(git remote) if [[ ${#REMOTES[@]} -eq 0 ]]; then echo "当前仓库未配置任何远端" >&2 exit 1 fi for REMOTE in "${REMOTES[@]}"; do echo "推送分支 $BRANCH 和 tags 到远端 $REMOTE" git push "$REMOTE" "$BRANCH" --tags done echo "已推送分支 $BRANCH 和 tags 到所有远端"