我为.gitconfig
扩展了一个日常别名,该别名在命令行中起作用。命令:
git log --since '2 day ago' --author='\(MYSURNAME\)\|\(mysurname\)'
由于我是通过Bitbucket合并Pull Request并直接从命令行提交的事实,因此我可以在Git日志中以小写或大写形式找到我的名字...因此,我在上面使用了“ regex” --author
开关上。无论如何,该命令在命令行上都能完美运行。如果我是全局.gitconfig
中的别名命令,则会出现以下错误:
致命:文件中的第53行配置错误...
指向新添加的别名。我的.gitconfig
:
[alias]
d = difftool
graph = log --graph --pretty=format:'%Cgreen%h%Creset -%C(yellow) %d%Creset %s %sCgreen(%cr) %C(bold magenta)<%an>%Creset' --abbrev-commit --date=relative
daily = log --since '2 day ago' --author="\(MYSURNAME\)\|\(mysurname\)"
使用这种别名时是否必须执行特殊的转义?
谢谢。
答案 0 :(得分:1)
当Git读取配置文件时,反斜杠(即使它们在引号内)也是转义序列引入字符。在这种情况下,反斜杠后的第二个字符是进入最终别名的字符。因此,您需要两个反斜杠才能在要运行的命令中产生一个反斜杠:
daily = log --since '2 day ago' --author="\\(MYSURNAME\\)\\|\\(mysurname\\)"
(在类似Unix的shell中,规则与.git/config
文件中的规则不同,因此,不要盲目地使用同一规则进行命令行交互。)