我无法在gitconfig中使用grep命令创建别名。 添加以下行时,我在运行别名时开始出错。
log --grep="BUILD\|Public Changes" --invert-grep
基本上我的意图是避免git commit消息列表中的BUILD和Public Changes。
编辑: 这在从git cmdline运行时有效:
git log --grep="BUILD\|Public Changes" --invert-grep
但是这(在gitconfig中)会出错:
ls = log --grep="BUILD\|Public Changes" --invert-grep
答案 0 :(得分:0)
错误(未在问题中列出)是
fatal: bad config file line 8 in .git/config
我首先将其从.git/config
删除,然后运行以下命令来修复此问题:
git config alias.ls 'log --grep="BUILD\|Public Changes" --invert-grep'
它生成的配置文件如下所示:
[alias]
ls = log --grep=\"BUILD\\|Public Changes\" --invert-grep
似乎需要将引号和反斜杠转义为有效语法
这是命令工作(GIT_TRACE=1
所以你可以看到别名解析)
$ GIT_TRACE=1 git ls --format=%h
18:08:47.310940 git.c:561 trace: exec: 'git-ls' '--format=%h'
18:08:47.310989 run-command.c:334 trace: run_command: 'git-ls' '--format=%h'
18:08:47.311393 git.c:278 trace: alias expansion: ls => 'log' '--grep=BUILD|Public Changes' '--invert-grep'
18:08:47.311462 git.c:344 trace: built-in: git 'log' '--grep=BUILD|Public Changes' '--invert-grep' '--format=%h'
18:08:47.311680 run-command.c:334 trace: run_command: 'pager'
18:08:47.311856 run-command.c:193 trace: exec: 'pager'
a081dfd