23

我有一个找不到的别名。打字git help subaddvim给了我:

`git subaddvim' is aliased to `log HEAD'

我想我是这样定义的:

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

我查看了$repo_path/.gitconfig, ~/.gitconfig, /etc/gitconfig,但它们都没有 subaddvim 条目。

我还能在哪里看?

4

2 回答 2

20

Scott Chacon 的优秀书籍“Pro Git”涵盖了存储内容的位置,以及传递git config给该位置读/写的选项:

Git 带有一个名为 git config 的工具,可让您获取和设置配置变量,这些变量控制 Git 外观和操作的各个方面。这些变量可以存储在三个不同的位置:

  • /etc/gitconfig 文件:包含系统上每个用户及其所有存储库的值。如果您将选项--system传递给 git config,它会专门从此文件中读取和写入。

  • ~/.gitconfig 文件:特定于您的用户。您可以通过传递--global选项使 Git 专门读取和写入此文件。

  • 您当前使用的任何存储库的 git 目录(即 .git/config)中的配置文件:特定于该单个存储库。每个级别都会覆盖前一级别的值,因此 .git/config 中的值优于 /etc/gitconfig 中的值。

您可以让 git 告诉您使用该--list选项的位置定义了什么:

# 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
于 2012-07-31T20:08:11.897 回答
12

--local使用未记录(或已过时)标志和无标志之间没有区别。$repo_path/.gitconfigGit 永远不会在您的存储库根目录 ( )中查找 gitconfig 。回购本地配置更改位于.git/config.

git help config解释有效选项:

--global 用于写入选项:写入全局 ~/.gitconfig 文件而不是存储库 .git/config。

   For reading options: read only from global ~/.gitconfig rather than from
   all available files.

--system 用于写入选项:写入系统范围的 $(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)

您可以尝试使用此搜索(从您的 repo 根目录并假设 git 安装在 /bin 中):

grep subaddvim .git/config ~/.gitconfig /etc/gitconfig
于 2012-07-31T19:36:04.217 回答