| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- @echo off
- chcp 65001 >nul
- echo ========================================
- echo Git 推送修复脚本
- echo ========================================
- echo.
- echo [1/6] 检查远程仓库配置...
- git remote -v
- echo.
- echo [2/6] 如果需要更新远程URL,请输入新的URL,否则按回车跳过
- set /p NEW_URL="新URL (留空跳过): "
- if not "%NEW_URL%"=="" (
- echo 更新远程仓库URL...
- git remote set-url origin %NEW_URL%
- echo 已更新为: %NEW_URL%
- )
- echo.
- echo [3/6] 检查当前分支...
- git branch
- echo.
- echo [4/6] 检查是否有未提交的更改...
- git status --short
- if %errorlevel% equ 0 (
- echo 有未提交的更改,正在添加...
- git add .
- echo 创建提交...
- git commit -m "Update: 更新代码 - %date% %time%"
- ) else (
- echo 检查是否有未暂存的文件...
- git diff --quiet
- if %errorlevel% neq 0 (
- echo 有未暂存的文件,正在添加...
- git add .
- git commit -m "Update: 更新代码 - %date% %time%"
- ) else (
- git diff --cached --quiet
- if %errorlevel% neq 0 (
- echo 有已暂存但未提交的文件,创建提交...
- git commit -m "Update: 更新代码 - %date% %time%"
- ) else (
- echo 没有需要提交的更改
- )
- )
- )
- echo.
- echo [5/6] 检查提交历史...
- git log --oneline -3
- echo.
- echo [6/6] 准备推送...
- REM 获取当前分支名称
- for /f "tokens=*" %%b in ('git branch --show-current 2^>nul') do set CURRENT_BRANCH=%%b
- if "%CURRENT_BRANCH%"=="" (
- for /f "tokens=*" %%b in ('git branch 2^>nul ^| findstr /C:"*"') do set CURRENT_BRANCH=%%b
- set CURRENT_BRANCH=%CURRENT_BRANCH:* =%
- )
- echo 当前分支: %CURRENT_BRANCH%
- if "%CURRENT_BRANCH%"=="" (
- echo 警告: 无法确定当前分支,尝试使用 master
- set CURRENT_BRANCH=master
- )
- echo.
- echo 尝试推送到远程仓库...
- echo 如果失败,请尝试: git push -u origin %CURRENT_BRANCH%
- git push -u origin %CURRENT_BRANCH%
- if %errorlevel% neq 0 (
- echo.
- echo 推送失败,尝试其他方法...
- echo.
- echo 选项1: 如果远程使用 main 分支
- echo git branch -M main
- echo git push -u origin main
- echo.
- echo 选项2: 如果远程仓库是空的,强制推送
- echo git push -u origin %CURRENT_BRANCH% --force
- echo.
- echo 选项3: 先拉取远程内容
- echo git pull origin %CURRENT_BRANCH% --allow-unrelated-histories
- echo git push -u origin %CURRENT_BRANCH%
- )
- echo.
- echo ========================================
- echo 完成!
- echo ========================================
- pause
|