这个git命令在git bash
$ git log --author="\(david\)\|\(peter\)" --format="%h %<(22)%an %s"
但是当我把它放入我的gitconfig
:
$ grep -E -e "alias|lolaf" .gitconfig
[alias]
lolaf = log --author="(david)|(peter)" --format="%h %<(22)%an %s"
# lolaf = log --author="\\(david\\)\\|\\(peter\\)" --pretty=format:'%h %\\<(22)%an %s'
# lolaf = log --author="\\(david\\)\\|\\(peter\\)" --format="%h %\\<(22)%an %s"
# lolaf = log --author="\\(david\\)\\|\\(peter\\)" --format="%h %<(22)%an %s"
# lolaf = log --author="\(david\)\|\(peter\)" --format="%h %<(22)%an %s"
# lolaf = log --author="(david)|(peter)" --pretty-format="%h %<(22)%an %s"
我收到了这个错误
$ git lolaf -- .
fatal: bad revision '%<(22)%an'
我认为问题是由于特殊字符的错误转义造成的。正如你所看到的,我尝试了一些不同的变体,但它们也没有用。
有什么建议吗?
答案 0 :(得分:1)
(我在这里提供我自己的答案。就这种情况而言,这可能有助于某人。)
经过多次试验,我终于找到了正确的组合。
<
\\
替换git bash
中使用的单个反斜杠所以,
lolaf = log --author='\\(david\\)\\|\\(peter\\)' --format='%h %<(22)%an %s'
在第一个工作之下,另一个是我的实验结果:
$ grep -E -e "alias|lolaf|worked" .gitconfig
[alias]
lolaf = log --author='\\(david\\)\\|\\(peter\\)' --format='%h %<(22)%an %s'
# this worked
# lolaf = log --author='\\(david\\)\\|\\(peter\\)'
# lolaf = log --author='\\(david\\)|\\(peter\\)'
# lolaf = log --author="\\(david\\)|\\(peter\\)"
# lolaf = log --author="\\(david\\)\\|\\(peter\\)"
# lolaf = log --author="david\\|peter" --format='%h %<(22)%an %s'
# lolaf = log --author="\\(david\\)" --format='%h %<(22)%an %s'
# this worked
# lolaf = log --format='%h %<(22)%an %s'
# lolaf = log --author="\\(david\\)\\|\\(peter\\)" --format='%h %<(22)%an %s'
# lolaf = log --author="\(david\)\|\(peter\)" --format='%h %<(22)%an %s'
# lolaf = log --author='(david)|(peter)' --format='%h %<(22)%an %s'
# lolaf = log --author="(david)|(peter)" --format='%h %<(22)%an %s'
# lolaf = log --author="(david)|(peter)" --format="%h %<(22)%an %s"
# lolaf = log --author="\\(david\\)\\|\\(peter\\)" --pretty=format:'%h %\\<(22)%an %s'
# lolaf = log --author="\\(david\\)\\|\\(peter\\)" --format="%h %\\<(22)%an %s"
# lolaf = log --author="\\(david\\)\\|\\(peter\\)" --format="%h %<(22)%an %s"
# lolaf = log --author="\(david\)\|\(peter\)" --format="%h %<(22)%an %s"
# lolaf = log --author="(david)|(peter)" --pretty-format="%h %<(22)%an %s"