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


当前回答

你可以创建一个别名来显示你机器上的所有git别名。运行下面的代码。

git config --global alias.alias "! git config --get-regexp ^alias\. | sed -e s/^alias\.// -e s/\ /\ =\ /"

然后,只需运行git别名。

其他回答

如果您知道别名的名称,您可以使用——help选项来描述它。例如:

$ git sa --help
`git sa' is aliased to `stash'

$ git a --help
`git a' is aliased to `add'

我在全局的~/.gitconfig中使用这个别名

# ~/.gitconfig

[alias]
    aliases = !git config --get-regexp ^alias\\. | sed -e s/^alias.// -e s/\\ /\\ $(printf \"\\043\")--\\>\\ / | column -t -s $(printf \"\\043\") | sort -k 1

产生以下输出

$ git aliases
aliases   --> !git config --get-regexp ^alias\. | sed -e s/^alias.// -e s/\ /\ $(printf "\043")--\>\ / | column -t -s $(printf "\043") | sort -k 1
ci        --> commit -v
cim       --> commit -m
co        --> checkout
logg      --> log --graph --decorate --oneline
pl        --> pull
st        --> status
...       --> ...

(注意:这适用于我在Windows上的git bash。对于其他终端,您可能需要调整转义。)


解释

!git config --get-regexp ^alias\\. prints all lines from git config that start with alias. sed -e s/^alias.// removes alias. from the line sed -e s/\\ /\\ $(printf \"\\043\")--\\>\\ / replaces the first occurrence of a space with \\ $(printf \"\\043\")--\\> (which evaluates to #-->). column -t -s $(printf \"\\043\") formats all lines into an evenly spaced column table. The character $(printf \"\\043\") which evaluates to # is used as separator. sort -k 1 sorts all lines based on the value in the first column

美元(printf \“\ 043 \”)

这只是打印用于列分隔的字符#(十六进制043)。我使用这个小hack,所以别名本身不字面上包含#字符。否则,它将在打印时替换这些#字符。 注意:如果您需要使用#符号的别名,请将此更改为另一个字符。

有一个内置的功能…试一试

$ __git_aliases

列出所有的别名:)

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

Git配置——list | grep别名

使用git var,只过滤那些以alias开头的:

git var -l | grep -e "^alias"