git_auto_sync.sh 1.1 KB

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