与上游仓库协同工作的工具
项目描述
git river
git-river 是一款旨在简化处理大量GitHub和GitLab项目以及涉及从“上游”仓库拉取更改并推送到“下游”仓库的“分支”工作流程的工具。
git-river 将管理您配置的“工作空间”路径,将仓库以树状结构克隆到该目录中,该结构按域名、项目命名空间和项目名称组织。
$ tree ~/workspace
~/workspace
├── github.com
│   └── datto
│       └── git-river
└── gitlab.com
    └── datto
        └── git-river
链接
安装
git-river 需要 Python 3.9 或更高版本。
pip3 install git-river
使用方法
运行 git-river <子命令>。Git 内置别名也允许您运行 git river。
在您可以使用 git-river 之前,您必须通过运行 git-river init PATH 或设置 GIT_RIVER_WORKSPACE 环境变量来配置工作空间路径。这应该指向一个目录,git-river 可以将其用作将 Git 仓库克隆到其中的目录。
几个命令会尝试发现各种名称,通常都有一个选项标志来覆盖发现。
- “上游”远程仓库是存在的第一个 upstream或origin。可以使用--upstream覆盖。
- “下游”远程仓库是存在的第一个 downstream。可以使用--downstream覆盖。
- “主线”分支是存在的第一个 main或master。可以使用--mainline覆盖。
子命令
- 
git river clone URL...将仓库克隆到工作路径。
- 
git river config管理配置文件。- git river config display以 JSON 格式打印加载的配置。凭证已被隐藏。
- git river config init创建初始配置文件。
- git river config workspace打印工作路径。
 
- 
git river forge管理由 GitHub 和 GitLab 列出的仓库。- git river forge执行- clone+- archived+- configure+- remotes子命令。
- git river forge clone克隆仓库。
- git river forge configure设置 git 配置选项。
- git river forge fetch获取每个 git 远程仓库。
- git river forge list显示将要克隆的远程仓库。
- git river forge remotes设置- upstream+- downstream或- origin远程仓库。
- git river forge tidy删除合并到主线分支的分支。
- git river forge archived列出本地存在的归档仓库。
 
- 
git river还提供了一些在当前目录的仓库上工作的“松散”子命令,大多数与forge子命令的功能相匹配。- git river fetch获取所有 git 远程仓库。
- git river merge创建所有- feature/*分支的合并结果。
- git river tidy删除合并到主线分支的分支。
- git river restart将当前分支从上游远程仓库的主线分支重新基。
 
配置
配置是从 ~/.config/git-river/config.json 读取的 JSON 对象。运行 git-river config init 创建示例配置文件。
- path- 用来作为“工作区”的目录路径。
- forges- 一个 forge 映射。
Forge 有以下选项。只有 type 是必需的 - 默认配置是使用不带身份验证的主要公共 GitHub 或 GitLab 域。
- type(必需) - 实例的类型,要么是- github,要么是- gitlab。
- base_url(可选) - 实例的基础 URL。不应包含尾随斜杠。- GitHub 实例的默认值为 https://api.github.com。
- GitLab 实例的默认值为 https://gitlab.com。
 
- GitHub 实例的默认值为 
- login_or_token(可选,仅 GitHub) - 认证令牌。
- private_token(可选,仅 GitLab) - 认证令牌。
- gitconfig(默认:- {}) - 要在仓库上设置的 git 配置选项的键值映射。
- groups(默认:- []) - 包含特定组的仓库。
- users(默认:- []) - 包含特定用户的仓库。
- self(默认:- true) - 自动包含认证用户的仓库。
示例
{
  "workspace": "~/Development",
  "forges": {
    "gitlab": {
      "type": "gitlab",
      "base_url": "https://gitlab.com",
      "private_token": "...",
      "groups": [],
      "users": [],
      "self": true,
      "gitconfig": {
        "user.email": "user+gitlab@example.invalid"
      }
    },
    "github": {
      "type": "github",
      "login_or_token": "...",
      "groups": [],
      "users": [],
      "gitconfig": {
        "user.email": "user+github@example.invalid"
      }
    }
  }
}
开发
Poetry 用于开发、构建和打包 git-river。Poetry 的 文档 描述了如何在您的操作系统上安装它。安装后,使用 poetry install 创建包含 git-river 及其依赖项的虚拟环境。
然后,您可以使用 poetry run git-river 运行 CLI 的本地版本。
代码使用 black 格式化,使用 poetry run black git_river 运行。
使用 mypy 检查类型,使用 poetry run mypy git_river 运行。
测试使用pytest编写,使用poetry run pytest运行。
# Download the project and install dependencies
git clone https://github.com/datto/git-river.git
cd git-river
poetry install
# Use the local version of the CLI
poetry run git-river ...
# Test, lint and format code
poetry run black git_river
poetry run mypy git_river
poetry run pytest
许可证
根据Mozilla公共许可证第2.0版许可。
版权所有:Datto, Inc.
由Sam Clements编写。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
构建分发
git-river-1.4.0.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a0aba04a6a37ddb25ead2cab116b52ec753b0841a62657480ce09c516c18c6b0 | |
| MD5 | 5ab28f1199e3a317b5bb5dbec4af593a | |
| BLAKE2b-256 | e0507d5d82931e2c34b8da34d1a3aa5230bdfbc5fd3ca9a5524e5ba9e23d544f | 
git_river-1.4.0-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 4167196e0e282168c7a730c900e081f4ef8eff34b4aa82f539248c1fc8cae745 | |
| MD5 | 8c07f1b3edc54e276c789d078695a04f | |
| BLAKE2b-256 | ddd5d4262f9293d1c89832a790140496fa16ac7a91db165abfdadd757ca8d34f |