2016年10月7日 星期五

windows 下使用 bat 指令 auto commit 到 github

最近因為 dropbox 把 public folder 關了,讓我的一個小程式沒辦法再透過html網頁查詢使用情形,只好轉戰 github,不過在 auto commit 時遇到不少問題,特此紀錄一下

我安裝了 github for windows,實在有點討厭這麼肥的程式(3xx MB),不過他也是有好處的,就是自帶了一個git-shell...會自動login...

我研究了很久如何在 windows 底下使用 bat 指令進行 auto commit,但是都會卡在要求帳號密碼的地方,網路上一堆人教如何跳過帳號密碼輸入
使用window認證管理員,還要再安裝一個2xx MB的程式,太誇張,不爽裝,失敗
使用記憶密碼 store,失敗
使用id & pw in url,失敗
使用ssh key,還是失敗

花了很多時間研究到底哪裡出錯,後來終於想到 使用 git-shell 就能跳過輸入帳號密碼的部分了阿...

1. 安裝肥大的github for windows
2. 使用github for windows 把專案下載下來,此時程式會自動建立你的ssh key
3. 確認一下 git-shell 是否可以自動登入
4. 找出 git-bash.exe 這支程式的位置 (c:\user\applocal\local\xxxxxxxxxx)
5. 建立 git_auto_commit.bat 內容如下 code_folder位置改成存放git_commit.sh的位置
@ECHO on
cd /d CODE_FOLDER

C:\github\git-bash.exe ./git_commit.sh
6.建立 git_commit.sh 內容如下 project_folder改為專案資料夾的位置
#!/bin/sh
timestr=$(date +"%Y-%m-%d %T")
cd PROJECT_FOLDER
git add . #加入所有新增檔案
git commit -m "Automated commit on $timestr" #快速commit
git push

這樣 執行git_auto_commit.bat 他就會自動呼叫 git-shell 執行 git_commit.sh 的腳本,因為git-shell已經登入,所以不會再跟你要帳號密碼