1 个不稳定版本

0.1.0 2019 年 10 月 27 日

#1497开发工具

MIT 许可证

44KB
896

git-subcopy Crates.io

一种包含大型 Git 仓库中单个文件或目录的方法。把它想象成是 git subtree 的糟糕克隆,但具有手动选择所需内容的权限。

为什么存在这个工具

选择你的毒药

  • 我讨厌 monorepos! => 我并不是特别喜欢它们,这是原因之一。有时你只想修改某个组件,而不想为构建你代码的每个人下载整个子模块链接的仓库。这将允许你从 monorepo 中复制单独的组件,或者如果你真的想遵循 Unix 哲学,你可以为所需的组件创建一个单独的仓库,然后将其作为子模块链接。

  • 我喜欢 monorepos! => 很好!这个工具将允许你选择性地将代码包含到你的仓库中,同时不会让它变得过于臃肿。即使你想分叉外部项目,你也不需要创建多个仓库,而且你的用户也不需要下载任何子模块。

  • 我对 monorepos 没有意见 => 然而,这个工具非常酷,你应该试一试 :)

项目状态

这绝对不稳定,库接口和 CLI 接口都有些棘手。总的来说,请将其视为 alpha 工具或只是一个概念证明。好消息是,由于所有代码都被复制并检入 Git,你永远不用担心丢失。如果你需要替换这个工具,你可以在文本中找到所有数据,如基本修订版本,所以你以后可以用另一个工具替换它。

使用方法

这是我完成初始版本后几分钟内用这个工具乱搞的一个屏幕录制示例

asciicast

安装

我建议使用 Nix 软件包管理器安装此项目(或任何项目!)。它将自动获取所有原生依赖项,因此你只需要运行以下命令。

nix-env -if https://gitlab.com/jD91mZM2/git-subcopy/-/archive/master.tar.gz

或者,你可以手动确保你已经安装了 rust、C 编译器和 openssl,然后使用 cargo 软件包管理器获取此项目。

cargo install git-subcopy

依赖关系

~15–26MB
~459K SLoC