随着开源软件的兴起,尤其是 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 语句里面,这就是个人喜好问题了
所有评论(0)