隨着開源軟件的興起,尤其是 GITHUB 的蓬勃發展,很多開源軟件都通過 GIT 進行管理,在我的計算機上就一個目錄是我關注並使用的開源軟件 GIT 本地副本,如何定期更新這些倉庫,一個個的更新太累人了,那不是一個合格的程序員干的活,肯定要寫腳本來處理啦,首先是在 windows 平台上,那就用 bat 來處理吧,隨說沒有 shell 腳本強大,對付目前我的需求還是可以的。
考慮到開源倉庫的目錄包含不同的層次,例如在 Images 目錄下就有各種開源的圖形庫,因此要能夠自動找出所有 GIT 倉庫,哪怕是在子目錄里面,然后對每一個 GIT 倉庫進行 git pull 操作,這樣一個批處理直接搞定
下面就是完成的批處理文件
@ IF $%1 == $ GOTO GITDIR :UPDATE @ SET REPOS=%1 @ CD %REPOS:~0,-5% @ ECHO Pulling [%CD%] ... @ git pull @ GOTO FINISH :GITDIR @ FOR /F %%I IN ('DIR /B /S /AD .git') DO @ CALL %0 %%I :FINISH @ CD %~DP0
其中需要注意的是
1、找到 GIT 倉庫,使用 DIR 查找 .git 目錄的方法找出所有的 git 倉庫
2、進入正確的目錄,使用 @ CD %REPOS:~0,-5% ,將目錄字符串后面的 /.git 去除掉
3、更新倉庫后需要回到批處理文件所在的目錄
當然可以把更新倉庫的代碼直接寫在 FOR 語句里面,這就是個人喜好問題了