@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo ========================================
echo Git推送测试脚本
echo ========================================
echo.

:: 检查Git状态
echo [1] 检查Git状态...
git status --porcelain >nul 2>&1
if %errorlevel% neq 0 (
    echo Git未初始化
    pause
    exit /b 1
)
echo Git状态正常
echo.

:: 获取当前分支
echo [2] 获取当前分支...
set current_branch=
for /f "tokens=*" %%b in ('git branch --show-current 2^>nul') do set current_branch=%%b

if "!current_branch!"=="" (
    echo 无法获取当前分支，使用默认分支main
    set current_branch=main
) else (
    echo 当前分支: !current_branch!
)
echo.

:: 检查远程仓库
echo [3] 检查远程仓库...
git remote -v
if %errorlevel% neq 0 (
    echo 未配置远程仓库
    pause
    exit /b 1
)
echo.

:: 尝试推送
echo [4] 尝试推送到远程...
echo 分支: !current_branch!
echo.

git push origin !current_branch! 2>&1
if %errorlevel% equ 0 (
    echo.
    echo 推送成功！
) else (
    echo.
    echo 推送失败
    echo.
    echo 可能的原因:
    echo 1. 远程分支不存在，尝试设置上游...
    git push -u origin !current_branch! 2>&1
    if %errorlevel% equ 0 (
        echo 推送成功（已设置上游）！
    ) else (
        echo 推送仍然失败
        echo.
        echo 请检查:
        echo - 网络连接
        echo - 认证配置（SSH密钥或Token）
        echo - 远程仓库地址
        pause
        exit /b 1
    )
)

echo.
echo ========================================
echo 测试完成
echo ========================================
pause

