#git #profile #cli-tool #account #multiple #issue #management

app g-rs

管理多个 Git 配置文件的命令行工具

2 个稳定版本

1.1.0 2024年7月27日
1.0.0 2024年7月23日

#371命令行工具

Download history 133/week @ 2024-07-20 142/week @ 2024-07-27 1/week @ 2024-08-03

276 每月下载量

MIT/Apache

21KB
434

你不喜欢在与多个 Git 账户交互时忘记它,最后提交了错误的名称吗?
g 正是为了解决这个问题而存在的,它不需要在 ~/.ssh/config 中繁琐地管理自定义主机,也不需要每次都手动切换凭据。

先决条件

  • git 2.10+
  • openssl 3+
  • cargo 1.79+

安装

cargo install g-rs

警告:目前不支持 Windows。

使用方法

创建配置文件

要开始使用,你需要创建你的第一个配置文件。

g profile add --name johnsmith --username "John Smith" --email john.smith@example.com

默认情况下,它会检查配置文件是否存在 - 如果不存在,则跳过此阶段。

警告:在这种情况下,现有配置文件中的数据不会与你的 CLI 参数进行验证,要编辑它,你需要使用 g profile edit

然后它将尝试为该配置文件生成 SSH 密钥对 - 如果私有密钥已存在,则从它生成公钥,否则从头开始生成。

你还可以使用 --force 标志来运行此命令,以警告重新生成一切。

检查你的配置文件

你可以使用 g profile list 列出所有现有的 g 配置文件。
要查看特定配置文件的设置,请使用 g profile show <PROFILE_NAME>

切换配置文件

g 的核心功能是快速在配置文件之间跳转。你可以使用 su 命令来实现: g su johnsmith。如果你在存储库内部运行 g,则会配置当前 git 存储库的凭据,否则全局配置。你仍然可以使用 --global 标志在存储库内部设置全局配置。

尽管 su 也与配置文件管理有关,但我决定将其作为一个独立的命令而不是 profile 的子命令,因为它使用频率很高。

你可以使用 g whoami 查看当前活动的配置文件,它还支持 --global 标志以检查全局配置的配置文件。

这只是一个命令的概述,有关更多信息,请运行内置的 g help 或特定命令/子命令的帮助。

它是如何工作的?

g 将您的配置文件存储在 ~/.config/g-profiles/ 中,例如

{
  "name": "John Smith",
  "email": "[email protected]"
}

此文件始终命名为 <PROFILE_NAME>.json。与配置文件相关的SSH密钥存储为 ~/.ssh/id_<PROFILE_NAME>~/.ssh/id_<PROFILE_NAME>.pub。目前仅支持ssh-ed25519密钥。

警告:文件名很重要,如果您手动更改它们,g将无法找到它们

切换配置文件时,g会设置 user.nameuser.email。授权通过使用 core.sshCommand 设置来处理。

依赖关系

~18MB
~412K SLoC