-
Notifications
You must be signed in to change notification settings - Fork 0
/
upload.bat
53 lines (41 loc) · 1.12 KB
/
upload.bat
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
@echo off
setlocal ENABLEDELAYEDEXPANSION
@rem Git コマンドが使えるか確認する
git > nul 2>&1
@rem Git コマンドの結果を判定する
if %errorlevel% neq 1 (
echo ERROR: git コマンドが存在しません。インストールしてから実行してください。
exit /b 1
)
@rem 全てのファイルをコミット対象にする
git add .
@rem 変更したファイル数を取得する
set DIFF_FILES=0
for /f "usebackq" %%A in (`git diff --cached --numstat`) do (
set /a DIFF_FILES += 1
)
@rem 変更したファイルなければコミット処理を省略する
if %DIFF_FILES% equ 0 goto :RUN_PUSH
@rem コミットメッセージを入力する
:ENTER_COMMIT_MESSAGE
set /P COMMIT_MESSAGE="コミットメッセージ(変更を簡単に説明する): "
if ["%COMMIT_MESSAGE%"]==[] goto :ENTER_COMMIT_MESSAGE
@rem コミットメッセージの確認
set /P YES_NO="コミットメッセージは '%COMMIT_MESSAGE%' でよろしいですか? [y/N]: "
if /I not %YES_NO%==y exit /b
@rem コミットする
echo;
git commit -m "%COMMIT_MESSAGE%"
echo;
:RUN_PUSH
@rem プッシュするかの確認
set /P YES_NO="プッシュ(GitHubに反映)しますか? [y/N]: "
if /I not %YES_NO%==y exit /b
@rem GitHub の変更をプルしてくる
echo;
git pull --rebase
echo;
@rem プッシュする
echo;
git push
echo;