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

自动更新本地 GIT 仓库的更多相关文章

  1. 更新本地git仓库的远程地址(remote地址)

    如果远程仓库的地址更新了,我们本地仓库就需要更新remote地址, 可以通过git remote -v或者cat .git/config查看通信方式及远程地址 更新远程地址的方式有两种: 第一种方式: ...

  2. 自动提交本地git仓库脚本

    #! /bin/bash git_user_name=`git config user.name` git_user_mail=`git config user.email` branch_name= ...

  3. 本地Git仓库同步到Bitbucket 远程Git仓库

    转载自:http://blog.csdn.net/lue2009/article/details/46553829 本地仓库内容可以和多个远程仓库同步,本地仓库出问题或者远程仓库其中一个有问题,那么剩 ...

  4. 本地Git仓库和远程仓库的创建及关联

    新建一个远程的仓库(空的) 新建一个远程仓库 设置远程仓库的名字,并创建 设置仓库名 切记:如果我们在创建远程仓库的时候添加了README和.ignore等文件,我们在后面关联仓库后,需要先执行pul ...

  5. 本地Git仓库的使用方法

    一.如何将自己的项目上传到本地git仓库以及上传到GitHub上面 上传到本地git仓库步骤: 1.先配置好git:工具-->扩展和更新-->安装GitHbu Extension for ...

  6. 如何将本地git仓库中的代码上传到github

    1,  在github上新建一个仓库,比如为:CSS3Test,仓库地址为:https://github.com/hyuanyuanlisiwei/CSS3Test 2,本地git仓库中的文件项目为C ...

  7. 如何把本地git仓库托管到码云上

    提交代码到本地git仓库 git init git status git add . git status git commit -m "init my project"     ...

  8. (转)如何将本地git仓库中的代码上传到github

    1,  在github上新建一个仓库,比如为:CSS3Test,仓库地址为:https://github.com/hyuanyuanlisiwei/CSS3Test 2,本地git仓库中的文件项目为C ...

  9. mc02_配置本地git仓库并上传到github

    注册github账号 仔细阅读使用说明便可,这里提一下如何删除一个repository. 点击要删除的repository,打开后点击Settings 然后滚动到页面最下方,点击最后一个按钮 在弹出框 ...

随机推荐

  1. js声明变量的三种方式及作用域

      js声明变量的三种方式及作用域 CreateTime--2017年9月11日17:19:11 Author:Marydon 一.参考链接 本篇文章的创作灵感来源于博主-奔跑的铃铛关于js中cons ...

  2. C# 之 FTPserver中文件上传与下载(二)

            通过上一篇博客<C# 之 FTPserver中文件上传与下载(一)>,我们已经创建好了一个FTPserver,而且该server须要username和password的验证 ...

  3. RxJava API使用示例

    概述 RxJava API示例代码,可离线查看rxjava1.0大部分API的marble图,描述,示例代码,并支持示例代码实时输出及展示执行结果. 详细 代码下载:http://www.demoda ...

  4. 【小程序】微信小程序开发—弹出框

    1. <span style="font-family:Comic Sans MS;font-size:18px;color:#333333;"><view cl ...

  5. FTP命令使用详解

    FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令.熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之 ...

  6. js闭包避免内存泄漏 减少内存使用 避免对象无法回收注意事项

    闭包 如果闭包的作用域中保存着一个 HTML 元素,则该元素无法被销毁.(下面代码来自高程) 闭包是 JavaScript 开发的一个关键方面:匿名函数可以访问父级作用域的变量. function a ...

  7. c#删除 list中的元素和怎么去除空元素

    ; i >= ; i--) { if (list[i].NO == item.NO) { list.RemoveAt(i); } } public void RemoveItemFromList ...

  8. jfinal的maven配置

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  9. C 语言 mmap

    /* *@author cody *@date 2014-08-12 *@description */ /* #include <sys/mman.h> void *mmap(void * ...

  10. [k8s]k8s-web-terminal配置使用 & etcdui etcd browser配置 & etcdkeeper3配置

    安装kube-dns后,我想看看他是怎么个配置,于是我就找到了这个 参考: https://github.com/beyondblog/k8s-web-terminal cat >> /e ...