无法在.gitconfig中添加--grep

时间:2017-04-25 23:53:44

标签: git

我无法在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

1 个答案:

答案 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