91 lines
2.1 KiB
Batchfile
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 |