-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgit-sync.bat
More file actions
90 lines (77 loc) · 2.55 KB
/
Copy pathgit-sync.bat
File metadata and controls
90 lines (77 loc) · 2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
@echo off
setlocal enabledelayedexpansion
:: ANSI renkleri için ESC karakteri oluştur
for /F %%a in ('echo prompt $E ^| cmd') do set "ESC=%%a"
:: Renkli output için
set "RED=%ESC%[91m"
set "GREEN=%ESC%[92m"
set "YELLOW=%ESC%[93m"
set "CYAN=%ESC%[96m"
set "NC=%ESC%[0m"
:: Random stash mesajı oluştur
set "RANDOM_ID=%RANDOM%%RANDOM%"
set "STASH_MSG=auto-stash-%RANDOM_ID%"
echo %CYAN%========================================%NC%
echo %CYAN% Git Sync Script%NC%
echo %CYAN%========================================%NC%
:: Değişiklik var mı kontrol et
git diff --quiet 2>nul
set DIFF_EXIT=%ERRORLEVEL%
git diff --cached --quiet 2>nul
set CACHED_EXIT=%ERRORLEVEL%
if %DIFF_EXIT%==0 if %CACHED_EXIT%==0 (
echo %YELLOW%[INFO]%NC% Stash yapilacak degisiklik yok, direkt pull yapiliyor...
set "STASH_NEEDED=false"
) else (
:: Stash yap
echo %YELLOW%[1/3]%NC% Stash yapiliyor: %STASH_MSG%
git stash push -m "%STASH_MSG%"
if !ERRORLEVEL! neq 0 (
echo %RED%[HATA]%NC% Stash basarisiz oldu!
exit /b 1
)
echo %GREEN%[OK]%NC% Stash basarili!
set "STASH_NEEDED=true"
)
:: Pull yap
echo %YELLOW%[2/3]%NC% Pull yapiliyor...
git pull
if %ERRORLEVEL% neq 0 (
echo %RED%[HATA]%NC% Pull basarisiz oldu!
if "%STASH_NEEDED%"=="true" (
echo %YELLOW%[INFO]%NC% Stash'i geri almak icin: git stash pop
)
exit /b 1
)
echo %GREEN%[OK]%NC% Pull basarili!
:: Stash pop yap (eğer stash yapıldıysa)
if "%STASH_NEEDED%"=="true" (
echo %YELLOW%[3/3]%NC% Stash pop yapiliyor...
git stash pop 2>&1
set POP_EXIT=!ERRORLEVEL!
if !POP_EXIT! neq 0 (
echo.
echo %RED%========================================%NC%
echo %RED% MERGE CONFLICT TESPIT EDILDI!%NC%
echo %RED%========================================%NC%
echo.
echo %YELLOW%Cakisan dosyalar:%NC%
git diff --name-only --diff-filter=U
echo.
echo %YELLOW%Detayli cakisma bilgisi:%NC%
git status --short
echo.
echo %CYAN%Cozum icin:%NC%
echo 1. Yukaridaki dosyalari duzenleyin
echo 2. Cakismalari cozun ^(^<^<^<^<^<^<^< ve ^>^>^>^>^>^>^> isaretlerini temizleyin^)
echo 3. git add ^<dosya^> ile cozulen dosyalari ekleyin
echo 4. git stash drop ile stash'i temizleyin ^(eger gerekliyse^)
exit /b 1
)
echo %GREEN%[OK]%NC% Stash pop basarili!
)
echo.
echo %GREEN%========================================%NC%
echo %GREEN% Islem basariyla tamamlandi!%NC%
echo %GREEN%========================================%NC%
endlocal