#!/bin/bash # DTS Monitor Android Git 自动同步脚本 # 用法: bash scripts/git_auto_sync.sh [commit_message] SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" cd "$PROJECT_ROOT" GOGS_URL="https://git.zhonjin.com:40717/steven_roc/dts_monitor_android.git" REMOTE_NAME="gogs" CREDENTIALS_FILE="$SCRIPT_DIR/.git_credentials" if [ ! -f "$CREDENTIALS_FILE" ]; then echo "❌ 凭证文件不存在: $CREDENTIALS_FILE" exit 1 fi TOKEN=$(cat "$CREDENTIALS_FILE") REMOTE_URL="https://steven_roc:${TOKEN}@git.zhonjin.com:40717/steven_roc/dts_monitor_android.git" if ! git remote get-url "$REMOTE_NAME" &>/dev/null; then git remote add "$REMOTE_NAME" "$REMOTE_URL" echo "✅ 添加远程: $REMOTE_NAME" else git remote set-url "$REMOTE_NAME" "$REMOTE_URL" fi COMMIT_MSG="${1:-Auto sync: $(date '+%Y-%m-%d %H:%M:%S')}" git add -A git diff --cached --quiet && { echo "无变更"; exit 0; } git commit -m "$COMMIT_MSG" git push "$REMOTE_NAME" master 2>&1 && echo "✅ 推送成功" || { git push "$REMOTE_NAME" HEAD:main 2>&1 && echo "✅ 推送成功(main)" || echo "❌ 推送失败" }