Windows下git pull批处理

在平时的工作中,遇到一些优秀的开源项目,如spring、dubbo等,如果想阅读它的源代码,我通常都会clone项目到本地的GitHub文件夹,这样大神们后面再提交更新的话,只需要git pull更新一下本地的项目就能做到和远程仓库的代码同步了。可是时间长了就会遇到一个问题,如果GitHub文件夹里的项目太多,更新的话每个文件夹进去执行git pull将会是一件很麻烦的事。于是,花了几分钟,写了个批量更新的脚本。还有那句话,“程序员是世界上最懒的人”。 重复劳动,我们是坚决不会做的。

代码一

  • update.bat
    1
    2
    3
    @echo off 
    for /d %%i in (*) do if not %%i==[Filter] @cd %cd%\%%i && @git pull
    pause

    注: [Filter] – 过滤的文件夹名称

代码二

  • 当然,也可以这样:
  • update2.bat
    1
    2
    3
    @echo off 
    for /d %%i in (app1,app2,app3,...) do @cd %cd%\%%i && @git pull
    pause

代码三

  • update.sh
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/bin/sh
    for dir in $(ls -d */)
    do
    cd $dir
    echo "into $dir"
    if [ -d ".git" ]; then
    git pull
    elif [ -d ".svn" ]; then
    svn update
    fi
    cd ..
    done

    代码比较简单,就是遍历文件夹,发现项目目录下有.git文件夹,则执行git pull。很容易理解。
    还加入了对svn项目的支持。命名为update.sh,放到GitHub文件夹,添加执行权限,执行./update.sh就可以了。

个人微信公众号技术交流QQ群
文章目录
  1. 1. 代码一
  2. 2. 代码二
  3. 3. 代码三