#gitignore #git #command-line #local-file #cli #command-line-tool

app gitnr

一个基于模板生成'.gitignore'文件的命令行界面

2个版本

0.1.3 2023年9月14日
0.1.2 2023年9月14日

1285开发工具

每月 21 次下载

MIT 协议

110KB
2K SLoC

gitnr

一个跨平台的命令行工具,用于使用模板创建.gitignore文件。

  • 使用来自GitHubTopTal集合的模板
  • 使用本地文件和远程URL作为模板
  • 使用多个模板时过滤掉重复的忽略行
  • 交互式模式以搜索和选择模板
  • 跨平台支持(Windows、macOS、Linux)
# Create an ignore file for Rust with CLion IDE
gitnr create gh:Rust tt:clion+all

# Interactively search and select templates
gitnr search 

gitnr demo

目录

安装 & 更新

Linux & Mac

在您的终端中运行以下任何命令以获取gitnr的最新版本。

全局安装

curl -s https://raw.githubusercontent.com/reemus-dev/gitnr/main/scripts/install.sh | sudo bash -s

为当前用户安装

curl -s https://raw.githubusercontent.com/reemus-dev/gitnr/main/scripts/install.sh | bash -s -- -u

在Linux上默认为$HOME/.local/bin,在macOS上为$HOME/bin。如果目录不存在或不在系统路径中,脚本将失败。

在特定目录中安装

curl -s https://raw.githubusercontent.com/reemus-dev/gitnr/main/scripts/install.sh | bash -s -- -d <dir>

Windows

在PowerShell终端中运行以下命令以安装gitnr的最新版本。

Set-ExecutionPolicy Unrestricted -Scope Process; iex (iwr "https://raw.githubusercontent.com/reemus-dev/gitnr/main/scripts/install.ps1").Content

二进制下载

查看发布页面以下载二进制文件,然后将其添加到系统路径中的目录。

从源代码

git clone --depth=1 github.com/reemus-dev/gitnr
cd gitnr
cargo install --path .

注意:这要求您在系统上已安装Rust和cargo。

用法

有3个命令可用

命令 描述
create 创建一个.gitignore文件,并将其内容打印到stdout或保存到文件中
search 交互式模式,用于从GitHub和TopTal集合中搜索和选择模板。然后,您可以将其复制到剪贴板或将相关的create命令复制到生成忽略文件的命令
help 显示带有可用标志和命令的CLI帮助消息

创建

创建命令接受一个模板列表,以生成一个.gitignore文件。

gitnr create [FLAGS] [TEMPLATES]...

创建模板参数

可以将模板作为以下形式提供给命令行界面:

  • 空格分隔或逗号分隔的值
  • 带或不带它们的源前缀

以下模板源可用:

模板源 前缀
URL url:
文件 file:
GitHub(任何公共仓库中的文件) repo:
GitHub模板 gh:
GitHub社区模板 ghc:
GitHub全局模板 ghg:
TopTal模板 tt:

例如

# With prefix
gitnr create gh:Node

# Without prefix
gitnr create Node

# Combining templates - a project using Node.js + Vue in WebStorm
gitnr create gh:Node ghc:JavaScript/Vue tt:webstorm+all

# Using a remote URL and local file
gitnr create url:https://domain.com/template.gitignore file:path/to/local.template.gitignore

# Using a file from a GitHub repo
gitnr create repo:github/gitignore/main/Rust.gitignore

如果您没有前缀模板,CLI将尝试自动检测模板源。如果它无法将模板名称与源匹配,则默认检查GitHub模板集合。建议明确指定源前缀,以避免任何歧义。

来自GitHub和TopTal集合的模板不需要具有.gitignore.stack.patch后缀。这意味着您可以使用gh:Rust而不是gh:Rust.gitignore,或者使用tt:webstorm+all而不是tt:webstorm+all.patch

生成的模板将按提供的模板参数的顺序创建。

[注意] TopTal模板集合包括stackspatches。Stack指定多个组合的忽略模板,例如Angular.stack。Patch扩展对GitHub集合中的原始模板进行修改。

创建标志

默认情况下,生成的.gitignore模板将打印到stdout。您可以使用可用的CLI标志自定义此行为

标志 描述
--save -s 将模板写入当前目录中的.gitignore文件(覆盖任何现有文件)
--file<path> -f<path> 将模板写入指定的文件路径,覆盖任何现有文件
--refresh -r 刷新模板缓存(默认情况下,模板缓存1小时)

搜索命令允许您交互式浏览、筛选和选择GitHub和Toptal集合中的模板。

gitnr search

这在您想查看可用的内容并预览不同的模板组合时很有用。您将能够预览单个模板,也能预览模板组合。

搜索命令只有一个标志,即--refresh | -r。这允许您刷新模板缓存,默认情况下模板集合缓存1小时。这是为了避免达到API速率限制。

为什么存在这个功能?

  • 我想为所有项目模板化我的.gitignore文件,以保持一致性。
  • 我想从多个模板构建.gitignore,以保持模块化
  • 我想用Rust构建一些东西并学习这门语言
  • 显然,我想在简单的侧项目中浪费比我想的更多的时间 😅

贡献

提出建议时,请提交PR或创建问题。鉴于这是我第一个Rust应用程序,经验丰富的开发者可能会发现很多可以改进、重构或删除的地方。因此,请随时提交PR或问题提出任何建议。


通过学习我在 https://reemus.dev 的编程挣扎来提高你的软件开发技能

依赖项

~12–23MB
~369K SLoC