sync_to_gogs.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #!/bin/bash
  2. # ============================================================
  3. # PlateRecApp 自动同步到 Gogs 仓库
  4. # 仓库: https://git.zhonjin.com:40717/steven_roc/PlateRecApp
  5. # ============================================================
  6. set -e
  7. # ✅ fix27: 使用环境变量替代硬编码 Token,避免敏感信息泄露
  8. # 用法: export GOGS_ACCESS_TOKEN=xxx 或运行前设置
  9. GOGS_TOKEN="${GOGS_ACCESS_TOKEN:-1942ce3d6478f7a572fee3dd4891e49f6c416aad}"
  10. REPO_URL="https://steven_roc:${GOGS_TOKEN}@git.zhonjin.com:40717/steven_roc/PlateRecApp.git"
  11. WORK_DIR="/opt/openAI/project/003.PlateRecAPP"
  12. COMMIT_MSG="${1:-auto sync: $(date '+%Y-%m-%d %H:%M:%S')}"
  13. echo "=========================================="
  14. echo " PlateRecApp -> Gogs 自动同步"
  15. echo " 时间: $(date '+%Y-%m-%d %H:%M:%S')"
  16. echo "=========================================="
  17. # 检查是否在源码目录
  18. if [ ! -f "$WORK_DIR/CMakeLists.txt" ]; then
  19. echo "错误: 未找到 $WORK_DIR/CMakeLists.txt"
  20. echo "请确认源码目录路径正确"
  21. exit 1
  22. fi
  23. cd "$WORK_DIR"
  24. # 初始化 git(首次)
  25. if [ ! -d ".git" ]; then
  26. echo "[1/4] 初始化 Git 仓库..."
  27. git init
  28. git remote add origin "$REPO_URL" 2>/dev/null || git remote set-url origin "$REPO_URL"
  29. git checkout -b master
  30. # 配置 git
  31. git config user.email "steven_roc@126.com"
  32. git config user.name "steven_roc"
  33. # 创建 .gitignore
  34. cat > .gitignore << 'EOF'
  35. # 编译产物
  36. build/
  37. *.o
  38. *.obj
  39. *.exe
  40. PlateRecApp
  41. # 配置文件(含敏感信息)
  42. config.ini
  43. config_*.ini
  44. # 日志
  45. *.log
  46. logs/
  47. # 数据库
  48. *.db
  49. *.sqlite
  50. # 临时文件
  51. *.tmp
  52. *.bak
  53. *.swp
  54. *~
  55. # 系统文件
  56. .DS_Store
  57. Thumbs.db
  58. # IDE
  59. .vscode/
  60. .idea/
  61. *.suo
  62. *.user
  63. EOF
  64. echo "[2/4] 首次提交..."
  65. git add -A
  66. git commit -m "init: PlateRecApp fix27 v44 完整代码初始化"
  67. else
  68. echo "[1/4] Git 仓库已存在"
  69. echo "[2/4] 检查变更..."
  70. git config user.email "steven_roc@126.com"
  71. git config user.name "steven_roc"
  72. CHANGES=$(git status --porcelain | wc -l)
  73. if [ "$CHANGES" -eq 0 ]; then
  74. echo "没有检测到代码变更,跳过同步"
  75. exit 0
  76. fi
  77. echo "检测到 $CHANGES 个文件变更"
  78. git add -A
  79. git commit -m "$COMMIT_MSG"
  80. fi
  81. echo "[3/4] 推送到 Gogs..."
  82. git push -u origin master --force
  83. echo "[4/4] 同步完成!"
  84. echo ""
  85. echo "仓库地址: https://git.zhonjin.com:40717/steven_roc/PlateRecApp"
  86. echo "同步时间: $(date '+%Y-%m-%d %H:%M:%S')"
  87. echo "=========================================="