@echo off chcp 65001 >nul setlocal enabledelayedexpansion echo ======================================== echo 简单Git推送工具 echo ======================================== echo. :: 1. 显示Git状态 echo [1] Git状态: git status --short echo. :: 2. 显示远程仓库 echo [2] 远程仓库: git remote -v if %errorlevel% neq 0 ( echo 错误: 未配置远程仓库 pause exit /b 1 ) echo. :: 3. 显示当前分支 echo [3] 当前分支: for /f "tokens=*" %%b in ('git branch --show-current 2^>nul') do set branch=%%b if "!branch!"=="" ( echo 警告: 无法获取分支名称,尝试使用main set branch=main ) echo 分支: !branch! echo. :: 4. 检查是否有未提交的更改 echo [4] 检查未提交的更改... git diff --quiet set has_uncommitted=%errorlevel% git diff --cached --quiet set has_staged=%errorlevel% if %has_uncommitted% neq 0 ( echo 有未暂存的更改 ) if %has_staged% neq 0 ( echo 有已暂存的更改 ) if %has_uncommitted% equ 0 if %has_staged% equ 0 ( echo 所有更改已提交 ) echo. :: 5. 尝试推送 echo [5] 开始推送... echo 命令: git push origin !branch! echo. git push origin !branch! 2>&1 | findstr /v "^$" set push_error=!errorlevel! if !push_error! equ 0 ( echo. echo ======================================== echo 推送成功! echo ======================================== ) else ( echo. echo ======================================== echo 推送失败!错误码: !push_error! echo ======================================== echo. echo 尝试设置上游并推送... git push -u origin !branch! 2>&1 | findstr /v "^$" set push_u_error=!errorlevel! if !push_u_error! equ 0 ( echo. echo ======================================== echo 推送成功(已设置上游)! echo ======================================== ) else ( echo. echo ======================================== echo 推送仍然失败 echo ======================================== echo. echo 常见问题和解决方案: echo. echo 1. 认证问题: echo - 检查SSH密钥: ssh -T git@github.com (GitHub) echo - 检查SSH密钥: ssh -T git@gitee.com (Gitee) echo - 或使用HTTPS + Personal Access Token echo. echo 2. 远程仓库地址: git config --get remote.origin.url echo. echo 3. 分支冲突: echo - 先拉取: git pull origin !branch! --rebase echo - 解决冲突后推送: git push origin !branch! echo. echo 4. 检查网络连接和远程仓库权限 echo. ) ) echo. pause