我的git别名存储在哪里?

idb*_*rii 15 git alias

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

`git subaddvim' is aliased to `log HEAD'
Run Code Online (Sandbox Code Playgroud)

我想我的定义是这样的:

git config --local alias.subaddvim 'log HEAD'
Run Code Online (Sandbox Code Playgroud)

我看了看$repo_path/.gitconfig,~/.gitconfig,/etc/gitconfig,但他们都没有一个subaddvim条目.

我还能在哪里看?

Mat*_*ick 10

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

Git附带了一个名为git config的工具,可以让你获取和设置控制Git外观和操作方式的配置变量.这些变量可以存储在三个不同的地方:

  • / etc/gitconfig file:包含系统上每个用户及其所有存储库的值.如果将选项--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
Run Code Online (Sandbox Code Playgroud)


idb*_*rii 6

使用未记录的(或过时的)--local标志和没有标志没有区别.Git从不在您的存储库根目录($repo_path/.gitconfig)中查找gitconfig .Repo-local配置更改在.git/config.

git help config 解释有效选项:

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

   For reading options: read only from global ~/.gitconfig rather than from
   all available files.
Run Code Online (Sandbox Code Playgroud)

--system用于写入选项:写入系统范围的$(前缀)/ etc/gitconfig而不是存储库.git/config.

   For reading options: read only from system-wide $(prefix)/etc/gitconfig
   rather than from all available files.
Run Code Online (Sandbox Code Playgroud)

(使用git版本1.7.9)

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

grep subaddvim .git/config ~/.gitconfig /etc/gitconfig
Run Code Online (Sandbox Code Playgroud)