#git-repository #skeleton #apply #subcommand #continuously #file #tags

app git-skel

一个用于持续应用骨架代码库的 git 子命令

7 个版本

0.1.6 2019年7月9日
0.1.5 2019年7月9日
0.1.4 2019年4月17日

#2530命令行工具

MIT 许可证

30KB
704

git-skel

git-skel 是一个用于持续应用骨架代码库的 git 子命令。

Build Status Crates.io codecov

描述

骨架代码库是一个项目模板,包括目录、脚本、配置文件等。(您可以在 GitHub 中通过搜索 skeleton 找到许多骨架代码库。)

通常,骨架代码库在项目的初始阶段通过克隆仓库来使用。如果项目成长后骨架代码库更新了,应用更新的方式是谨慎地文件复制或 git cherry-pick。这两种方法都不太容易。

git-skel 提供了一种简单的方式来应用更新。

平台

Linux/macOS/Windows

安装

下载二进制文件

发布页面 下载,并解压到 PATH 目录中。

Cargo

您可以通过 cargo 来安装。

cargo install git-skel

演示

asciicast

用法

初始化

最初,您可以在任何 git 仓库中设置应用骨架代码库,如下所示

$ git skel init [URL]

git skel init 命令将 [URL] 克隆到临时目录,并将所有文件复制到当前仓库。该命令将 .gitskel.toml 放到当前仓库,以记录骨架代码库的路径和修订版本。您可以通过 git status 检查添加的文件,如果没有问题,则提交。

更新

如果骨架代码库已更新,您可以按以下方式应用更新

$ git skel update

git skel update 命令将保存在 .gitskel.toml 中的骨架仓库克隆到一个临时目录,并将所有文件复制到当前仓库。如果在 .gitskel.toml 中最新版本和保存版本之间存在已删除的文件,这些文件将被删除。如果将要被命令改变的文件已被修改但未提交,命令将被中止。

$ git skel update
Detect changes
  !copy  : aaa
Error: aborted bacause some files are not committed ( marked by ! )
       If you will ignore it, use `--force` option.

您可以通过 git skel update --force 忽略此检查。

分支/标签

git skel branch 命令将跟踪并更新分支。

$ git skel branch [BRANCK NAME]

git skel tag 命令将跟踪并更新标签。

$ git skel tag [TAG NAME]

--force 选项可以与更新一样使用。

清理

git skel clean 命令将删除 .gitskel.toml 和从骨架仓库复制过来的所有文件。

$ git skel clean

--force 选项可以与更新一样使用。

.gitskelignore

您可以将 .gitskelignore 放在仓库根目录下。这与 .gitignore 的语法相同。任何与 .gitskelignore 匹配的文件都将被命令忽略。

.gitskelignore 可用于骨架仓库和项目仓库。例如,应将 README.md 添加到骨架仓库的 .gitskelignore,因为 README.md 不应复制到项目仓库。如果存在因项目特定原因而修改的文件,则应将这些文件添加到项目仓库的 .gitskelignore

依赖

~19–32MB
~536K SLoC