Files
CAD-Projects/Git-Push_c.bat
2025-06-03 10:07:51 +02:00

91 lines
2.1 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
echo Checking git repository status...
echo.
REM Check if we're in a git repository
git rev-parse --git-dir >nul 2>&1
if errorlevel 1 (
echo Error: Not a git repository or git is not installed.
pause
exit /b 1
)
REM Check for changes (staged, unstaged, and untracked files)
git diff --quiet --exit-code
set staged_changes=%errorlevel%
git diff --quiet --cached --exit-code
set unstaged_changes=%errorlevel%
REM Check for untracked files
for /f %%i in ('git ls-files --others --exclude-standard ^| find /c /v ""') do set untracked_count=%%i
REM If no changes detected
if %staged_changes%==0 if %unstaged_changes%==0 if %untracked_count%==0 (
echo No changes detected in the repository.
echo Repository is up to date.
pause
exit /b 0
)
REM Show current status
echo Changes detected:
git status --porcelain
echo.
REM Add all changes (staged, unstaged, and untracked)
echo Adding all changes...
git add .
REM Verify there are changes to commit after adding
git diff --quiet --cached --exit-code
if %errorlevel%==0 (
echo No changes to commit after adding files.
pause
exit /b 0
)
REM Prompt for commit message
echo.
set /p commit_msg="Enter commit message: "
REM Check if commit message is empty
if "!commit_msg!"=="" (
echo Error: Commit message cannot be empty.
pause
exit /b 1
)
REM Commit changes
echo.
echo Committing changes...
git commit -m "!commit_msg!"
if errorlevel 1 (
echo Error: Failed to commit changes.
pause
exit /b 1
)
REM Push to remote repository
echo.
echo Pushing to remote repository...
git push
if errorlevel 1 (
echo Error: Failed to push changes to remote repository.
echo This might be due to:
echo - No remote repository configured
echo - Network connectivity issues
echo - Authentication problems
echo - Need to pull changes first
echo.
echo You can try running 'git push' manually to see the specific error.
pause
exit /b 1
)
echo.
echo Success! Changes have been committed and pushed.
echo Commit message: !commit_msg!
pause