我的git别名存储在哪里?

25

我有一个找不到的别名。输入git help subaddvim会显示:

`git subaddvim' is aliased to `log HEAD'

我认为我是这样定义的:

git config --local alias.subaddvim 'log HEAD'

我查看了$repo_path/.gitconfig~/.gitconfig/etc/gitconfig这些文件,但是它们都没有包含subaddvim条目。

我应该去哪里寻找呢?

2个回答

24

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

13

使用未记录(或已过时)的 --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)
你可以尝试在此处搜索(从您的仓库根目录开始,假设 git 安装在 /bin 中):
grep subaddvim .git/config ~/.gitconfig /etc/gitconfig

我打开了安装文件夹中的.gitconfig文件。但是我找不到已经存在的任何别名。简单地说,我无法找到写有别名的文本文件。 - Hareen Laks
@HareenLaks 你试过答案末尾的grep命令了吗?用你要查找的别名替换 subaddvim - idbrii

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接