我有时会在 git 上使用这个命令。
$ git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ];
then
GIT_AUTHOR_NAME="myname";
GIT_AUTHOR_EMAIL="[email protected]";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEAD
我想将其添加为别名。然后我尝试如下,它不起作用......
git config --global alias.rewritelog '!f(){ \
git filter-branch --commit-filter \' \
if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ]; \
then \
GIT_AUTHOR_NAME="myname"; \
GIT_AUTHOR_EMAIL="[email protected]"; \
git commit-tree "$@"; \
else \
git commit-tree "$@"; \
fi\' HEAD \
};f'
执行此命令后,发生错误。
zsh: parse error near `then'
您不能在单引号内转义单引号。幸运的是,您可以在双引号内转义双引号。用双引号而不是单引号括起来:
git config --global alias.rewritelog "!f(){ \
git filter-branch --commit-filter ' \
if [ \"$GIT_AUTHOR_EMAIL\" = [email protected] ]; \
then \
GIT_AUTHOR_NAME=myname; \
[email protected]; \
fi; \
git commit-tree \"$@\"' HEAD; };f"
我还简化了您的原始代码并删除了一些不必要的双引号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句