Git别名添加shell命令(如awk)失效,求解决方法
Git别名带管道失效的解决办法
当你给Git别名添加管道(|)和shell命令(比如awk)时,直接写branch -vva | awk '{print $1}'会失效——原因是Git默认会把别名内容当作Git子命令执行,而管道、awk属于shell语法,Git本身无法解析这类语法。
解决方法很直接:给别名内容加上!前缀,让Git调用系统shell来执行整个命令串,同时要显式写出git branch(因为shell环境没有Git子命令的上下文,直接写branch会找不到命令)。
步骤1:删除失效的别名
git config --global --unset alias.br
步骤2:重新配置别名
有两种配置方式可选:
方式一:命令行直接配置
注意要处理$符号的shell解析问题,推荐用单引号包裹整个别名内容:
git config --global alias.br '!git branch -vva | awk "{print \$1}"'
或者用双引号时转义$:
git config --global alias.br "!git branch -vva | awk '{print \$1}'"
方式二:直接编辑Git全局配置文件
打开~/.gitconfig文件,找到[alias]段落,添加:
[alias] br = !git branch -vva | awk '{print $1}'
配置完成后,执行git br就能正常输出所有分支的名称了。
内容的提问来源于stack exchange,提问作者JOEL
相关产品推荐
相关产品推荐

