使用 GTWS 管理复杂的 Git 工作空间 | LinuxCN Mirror
Skip to content
返回

使用 GTWS 管理复杂的 Git 工作空间

GTWS 是一系列脚本,它使我们在开发环境中管理不同的项目和项目的各个版本变得很容易。

Great Teeming Workspaces(GTWS)是一个 Git 的复杂工作空间管理工具包,它使我们在开发环境中管理不同的项目和项目的各个版本变得很容易。

有点像 Python 的 venv,但不是为 Python 语言准备的。GTWS 用来管理多个项目的多个版本的工作空间。你可以很容易地创建、更新、进入和离开工作空间,每个项目或版本的组合(最多)有一个本地的 origin,用来与 upstream 同步 — 其余的所有工作空间都从本地的 origin 更新。

部署

${GTWS_ORIGIN}/<project>/<repo>[/<version>]
${GTWS_BASE_SRCDIR}/<project>/<version>/<workspacename>/{<repo>[,<repo>...]}

源代码目录的每一级(包括全局的家目录)可以包含一个 .gtwsrc 文件,这个文件中维护与当前级相关的设置和 bash 代码。每一级的配置会覆盖上一级。

安装

用下面的命令检出 GTWS:

git clone https://github.com/dang/gtws.git

配置你的 ${HOME}/.gtwsrc。它应该包含 GTWS_ORIGIN,也可以再包含 GTWS_SETPROMPT

把仓库目录加到环境变量中:

export PATH="${PATH}:/path/to/gtws

配置

通过级联 .gtwsrc 文件来进行配置。它从根目录向下遍历,会执行在每级目录中找到的 .gtwsrc 文件。下级目录的文件会覆盖上一级。

在你最上层的文件 ~/.gtws/.gtwsrc 中进行如下设置:

在每个项目的根目录进行以下设置:

在项目版本级进行以下设置:

下面这些参数可以在目录树的任意地方进行配置,如果能生效,它们可以被重写多次:

origin 目录

GTWS_ORIGIN (大部分脚本中)指向拉取和推送的原始 Git 检出目录。

${GTWS_ORIGIN} 部署:

工作流示例

假设你有一个项目名为 Foo,它的 upstream 为 github.com/foo/foo.git。这个仓库有个名为 bar 的子模块,它的 upstream 是 github.com/bar/bar.git。Foo 项目在 master 分支开发,使用稳定版本的分支。

为了能在 Foo 中使用 GTWS,你首先要配置目录结构。本例中假设你使用默认的目录结构。

到现在为止,Foo 的 master 分支的工作可以结束了。假设你现在想修复一个 bug,名为 bug1234。你可以脱离你当前的工作空间为修复这个 bug 单独创建一个工作空间,之后在新创建的工作空间中开发。


via: https://opensource.com/article/20/2/git-great-teeming-workspaces

作者:Daniel Gryniewicz 选题:lujun9972 译者:lxbwolf 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出



Previous Post
开源的广告拦截器不但节能,而且能拯救生命!
Next Post
Bodhi Linux 5.1 一览: 略有不同的轻量化 Linux