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


当前回答

我在全局的~/.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 var,只过滤那些以alias开头的:

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

这个简单的解决方法对我来说很有效

为列出别名创建一个别名:) Git配置——全局别名。别名“config——get-regexp '^alias\.'” 执行它git aliases来列出我们所有其他的aliases

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

git config --get-regexp ^alias

我创建了一个git别名(奇怪的是)别名正是为了这个目的…如果你经常使用混叠的话,会很方便。

$ git配置——全局别名。别名“config -get-regexp ^ Alias \.”

注意,regex确保行以别名开始。

使用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