1 个不稳定版本
0.1.0 | 2022年4月23日 |
---|
8 在 #identities
31KB
654 行
Gitconf
为Git提供更方便、更灵活的配置覆盖工具
描述
Git允许您设置本地和全局设置,但这些设置的管理还有很多需要改进的地方。
Gitconf工具作为覆盖程序,向git添加了配置配置文件机制。有了gitconf,您可以在系统中创建多个git设置配置文件,并在每个特定存储库中通过一条命令在这些配置文件之间切换。
由于gitconf是覆盖程序,您可以通过它执行所有经典的git命令。例如,使用gitconf clone
而不是git clone
。在这种情况下,gitconf将确保在执行命令之前git设置与所选配置文件匹配。您还可以设置一个交互式配置文件选择对话框,当您开始与新的存储库一起工作时显示。
用法
Gitconfig继承了所有现有的git命令,但也增加了一些自己的命令。
gitconf show-profiles
显示当前目录中可见的所有设置配置文件列表。
gitconf show-profile
显示所选配置文件中包含的设置。接受配置文件名称作为单个参数。
gitconf set-profile
在当前目录中设置所选配置文件。接受配置文件名称作为单个参数。
gitconf set-profile-path
在当前目录中安装位于指定路径的配置文件。
接受配置文件路径作为单个参数。
配置机制
Gitconf将配置数据存储在名为.gitconf的目录中。Gitconf将按照启动时的路径和每个父路径搜索名为.gitconf的目录。配置文件存储在.gitconf/profiles中,作为toml文件。当前所选配置文件的副本存储在.gitconf/current中。较近路径上的配置优先于较远路径上的配置。类似于git的做法,首先读取全局设置文件,然后依次读取所有较低级别的设置文件。每个配置覆盖或扩展较高级别的参数。此外,位于/etc/.gitconf中的配置被认为是最全局的。
通常,在安装giconf时,默认配置在"/etc/.gitconf/current/DEFAULT"中创建。
您可以用它作为示例。
配置选项
配置文件可以包含以下参数
Strict
一个布尔选项,告诉gitconf忽略所有高级配置。默认为false。
StrictGit
一个布尔选项,指示gitconf覆盖通过gitconf本身之外做出的任何git设置。默认为true。
SelectProfileOnFirstUse
在新的仓库中开始工作时,显示带有配置选择的配置对话框。默认为否。
ShowCurrentProfile
在调用git命令时,将当前配置名称打印到标准输出。默认为是。
Interactive
启用显示交互式对话框。默认为否。
Config
键值字典。gle键是git参数,值是它的值。
安装
从源代码
需求
- rust工具链
- make
- gzip
# Clone project
git clone https://github.com/DomesticMoth/gitconf.git
cd gitconf
# Build native
make build
# Install
sudo make install
下载deb包
您可以从发布页面下载预构建的deb包
v0.1.0 sha1校验和
gitconf-arm7.gz f597a8d3ae7416713364b5be9221f0cef5608c02
gitconf-x64.gz 1c917fad94e14c5672f0f8272ff1b7bba7803a1a
gitconf-deb-arm7.deb b2b4bc614a88466c44012bf0ee5f700f93c4e146
gitconf-deb-x64.deb 6d61db782b4ac1a74aca1f80ea6c91547f7c7642
构建deb包
您也可以从源代码自行构建deb包
需求
- rust工具链
- make
- gzip
- dpkg
# Clone project
git clone https://github.com/DomesticMoth/gitconf.git
cd gitconf
# Build for x86-64
make build-deb-x64
# or for arm7
make build-deb-arm7
# Builded packages are saved in the ./out directory
从crates.io
cargo install gitconf
依赖关系
~6–16MB
~208K SLoC