我有一个找不到的别名。输入git help subaddvim
会显示:
`git subaddvim' is aliased to `log HEAD'
我认为我是这样定义的:
git config --local alias.subaddvim 'log HEAD'
我查看了$repo_path/.gitconfig
,~/.gitconfig
,/etc/gitconfig
这些文件,但是它们都没有包含subaddvim条目。
我应该去哪里寻找呢?
Scott Chacon的优秀书籍《Pro Git》详细介绍了Git存储位置和传递给git config
的参数:
Git提供了一个名为git config的工具,您可以使用它来获取和设置配置变量,从而控制Git的外观和操作。这些变量可以存储在三个不同的位置:
/etc/gitconfig 文件: 包含系统上每个用户及其所有仓库的值。如果将--system选项传递给git config,则它将专门从此文件读取和写入。
~/.gitconfig 文件: 特定于您的用户。您可以通过传递--global选项使Git专门读取并写入此文件。
git目录中的config文件(即.git/config),它特定于当前正在使用的单个存储库。每个级别都会覆盖上一级别的值,因此.git/config中的值优先于/etc/gitconfig中的值。
您可以使用--list
选项让git告诉您定义了哪些内容以及它们定义在哪里:
# shows all settings
git config --list
# shows system settings
git config --list --system
# shows user settings
git config --list --global
# shows project settings
git config --list --local
使用未记录(或已过时)的 --local
标志和不带标志之间没有区别。Git 从未在您的仓库根目录($repo_path/.gitconfig
)中查找 gitconfig,仓库本地配置更改存储在 .git/config
中。
git help config
解释了有效选项:
--global 对于编写选项:写入到全局 ~/.gitconfig 文件而不是仓库 .git/config。
For reading options: read only from global ~/.gitconfig rather than from
all available files.
--系统 写选项时:将选项写入系统范围的$(prefix)/etc/gitconfig,而不是存储库中的.git/config。
For reading options: read only from system-wide $(prefix)/etc/gitconfig
rather than from all available files.
(使用 Git 版本 1.7.9)grep subaddvim .git/config ~/.gitconfig /etc/gitconfig
subaddvim
。 - idbrii