我如何打印我的git别名列表,即,类似于bash别名命令的东西?


当前回答

另一个git别名(称为alias)打印出git别名:添加以下到你的gitconfig [alias]部分:

[alias]
    # lists aliases matching a regular expression
    alias = "!f() { git config --get-regexp "^alias.${1}$" ; }; f"

示例用法,给出完整的别名(与别名完全匹配:即^foobar$),并简单地显示值:

$ git alias st
alias.st status -s

$ git alias dif
alias.dif diff

或者,给regexp,它会显示所有匹配的别名和值:

$ git alias 'dif.*'
alias.dif diff
alias.difs diff --staged
alias.difh diff HEAD
alias.difr diff @{u}
alias.difl diff --name-only

$ git alias '.*ing'
alias.incoming !git remote update -p; git log ..@{u}
alias.outgoing log @{u}..

注意:引用regexp以防止将shell扩展为glob,尽管如果/当没有文件匹配该模式时,在技术上并不需要这样做。另外:任何regexp都可以,除了不能使用^(模式开始)和$(模式结束);它们是隐含的。假设您没有使用git-extras中的git-alias。

而且,显然你们的别名也会有所不同;这些只是我配置的几个。(也许你也会发现它们很有用。)

其他回答

另一种选择(纯粹是我觉得容易记住的东西):

Git配置——list | grep别名

另一个git别名(称为alias)打印出git别名:添加以下到你的gitconfig [alias]部分:

[alias]
    # lists aliases matching a regular expression
    alias = "!f() { git config --get-regexp "^alias.${1}$" ; }; f"

示例用法,给出完整的别名(与别名完全匹配:即^foobar$),并简单地显示值:

$ git alias st
alias.st status -s

$ git alias dif
alias.dif diff

或者,给regexp,它会显示所有匹配的别名和值:

$ git alias 'dif.*'
alias.dif diff
alias.difs diff --staged
alias.difh diff HEAD
alias.difr diff @{u}
alias.difl diff --name-only

$ git alias '.*ing'
alias.incoming !git remote update -p; git log ..@{u}
alias.outgoing log @{u}..

注意:引用regexp以防止将shell扩展为glob,尽管如果/当没有文件匹配该模式时,在技术上并不需要这样做。另外:任何regexp都可以,除了不能使用^(模式开始)和$(模式结束);它们是隐含的。假设您没有使用git-extras中的git-alias。

而且,显然你们的别名也会有所不同;这些只是我配置的几个。(也许你也会发现它们很有用。)

使用Bash列出全局和本地Git别名。即使没有安装Git,也可以正常工作。

$ cat ~/.gitconfig .git/config 2>/dev/null | sed -n '/alias/,/\[/p' | grep -v '^\['
        co = checkout
        br = branch
        ci = commit
        st = status

2>/dev/null -隐藏配置文件不存在时的错误 Sed -n '/alias/,/\[/p' -列出alias部分的内容 Grep -v '^\[' -隐藏部分标记(以左方括号开始)

相同命令的Bash别名

$ alias gita="cat ~/.gitconfig .git/config 2>/dev/null | sed -n '/alias/,/\[/p' | grep -v '^\['"

$ gita
        co = checkout
        br = branch
        ci = commit
        st = status

你可以在正则表达式^alias中使用——get-regexp,即所有以alias开头的配置

git config --get-regexp ^alias

搜索或显示所有别名

在[alias]下添加到你的.gitconfig:

aliases = !git config --list | grep ^alias\\. | cut -c 7- | grep -Ei --color \"$1\" "#"

然后你就可以

git aliases -显示所有aliases Git别名commit -仅包含“commit”的别名