2 个稳定版本
1.1.0 | 2024年7月27日 |
---|---|
1.0.0 | 2024年7月23日 |
#371 在 命令行工具
276 每月下载量
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.name
和 user.email
。授权通过使用 core.sshCommand
设置来处理。
依赖关系
~18MB
~412K SLoC