介绍

gitup(git-repo-updater) gitup是一个用于一次更新多个git存储库的工具。 它足够聪明,可以处理多个远程仓库,脏工作目录,分散的本地分支,分离的HEAD等等。 它最初是为管理大量项目和处理零星的互联网访问而创建的。 gitup适用于macOS,Linux和Windows。 您应该安装最新版本的git,并安装Python 2.7或Python 3。

安装

使用 pip:

1
pip install gitup

使用 Homebrew:

1
brew install gitup

源码安装

第一步:

1
2
git clone git://github.com/earwig/git-repo-updater.git
cd git-repo-updater

然后安装:

1
python setup.py install

or for just yourself (make sure you have ~/.local/bin in your PATH):

1
python setup.py install --user

最后删除 git-repo-updater 目录, 安装完成

提醒: 如果你使用的是windows,你想像mac一样在任何目录调用gitup需要添加一个doskey. 以自己实际的安装目录来配置我的是C:\python27\ :

1
DOSKEY gitup=c:\python27\python.exe c:\python27\Scripts\gitup $*

用法

有两种方法可以更新repos:您可以将它们作为命令参数传递,或者将它们保存为“书签”。

比如:

1
gitup ~/repos/foo ~/repos/bar ~/repos/baz

将自动拉到foo、bar和baz git存储库。另外,你只需要输入

1
gitup ~/repos

自动更新该目录中的所有git存储库。

要添加书签,这两种方法都可以

1
2
gitup --add ~/repos/foo ~/repos/bar ~/repos/baz
gitup --add ~/repos

然后,要更新所有书签,只需运行gitup而不带args

1
gitup

删除一个书签:

1
gitup --delete ~/repos

查看你当前的书签:

1
gitup --list

你可以混合和匹配书签和命令参数:

1
2
3
4
gitup --add ~/repos/foo ~/repos/bar
gitup ~/repos/baz            # update 'baz' only
gitup                        # update 'foo' and 'bar' only
gitup ~/repos/baz --update   # update all three!

更新你当前目录下的所有github仓库:

1
gitup .

如果git repo本身不是git repo,您可以使用–depth (或- t )选项控制git up在给定目录中查找存储库的深度。-depth 0将完全禁用递归,这意味着所提供的路径必须由它们自己重新发布。–depth 1将下降一级(这是0.5 gitup之前的旧行为)。–depth - 1将无限期重复出现,这是不推荐的。默认为–depth 3。

默认情况下,gitup将获取存储库中的所有远程数据库。 传递–current-only(或-c)使其仅获取当前分支跟踪的远程。

gitup命令参考帮助:

1
gitup --help

修复bug

在Windows上由于编码不一样gitup .会出现ascill的错误,利用下面方法可以解决

python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:

1
2
3
4
5
# encoding=utf8  
import sys  
  
reload(sys)  
sys.setdefaultencoding('utf8')   

pip镜像源配置

linux/mac用户将它命名为pip.conf, windows用户将它命名为pip.ini. 文件中写如下内容:

1
2
3
[global]
timeout = 60
index-url = https://pypi.doubanio.com/simple

如果使用http链接,需要指定trusted-host参数

1
2
3
4
[global]
timeout = 60
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com

将该文件放置在指定位置.

linux下指定位置为 $HOME/.config/pip/pip.conf 或者 $HOME/.pip/pip.conf

mac下指定位置为 $HOME/Library/Application Support/pip/pip.conf 或者 $HOME/.pip/pip.conf

windows下指定位置为 %APPDATA%\pip\pip.ini 或者 %HOME%\pip\pip.ini