列出Git别名

619

我该如何打印出我的git别名列表,就像bash中的alias命令一样?


8
我认为下面的顶级答案可以解决问题,也许你应该接受它? - domoarigato
@domoarigato 谢谢。很抱歉我没有接受答案,现在我已经这样做了。 - ma11hew28
这可能是一个有用的问题候选人,它已经没有被接受的答案最长时间了 :) :P - domoarigato
@domoarigato 哈哈,好的,谢谢。 :-) - ma11hew28
24个回答

1

另一个名为aliasgit别名,用于打印出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

或者,提供正则表达式,显示所有匹配的别名和值:

$ 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}..

注意事项:为了防止shell扩展作为glob,引用regexp是必要的,尽管在没有文件匹配模式时/如果时技术上不必要。另外:任何regexp都可以,除了^(模式开头)和$(模式结尾)不能使用;它们是隐含的。假设您没有使用git-extras中的git-alias。
此外,显然您的别名将是不同的;这些只是我配置的几个别名。(也许你也会发现它们有用。)

0
$ git alias -h

'alias' is aliased to '!git config --list | grep 'alias\.' | sed 
's/alias\.\([^=]*\)=\(.*\)/\1\  => \2/' | sort'
a        => !git add . && git status
aa       => !git add . && git add -u . && git status
ac       => !git add . && git commit
acm      => !git add . && git commit -m

1
目前你的回答不够清晰。请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

0

这是我为社区创建的别名:git aliasesgit get-alias

使用git aliases可以获取您的git别名列表。 使用git get-alias <alias-name>可以获取别名内容。

git config --global alias.aliases '!f() { git config --get-regexp "^alias\." | cut -d " " -f 1 | cut -d "." -f 2 ; }; f'

git config --global alias.get-alias '!f() { git config --get-regexp "^alias\." | grep $1 ; }; f'

0
使用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' - 列出别名部分的内容
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接