Git:别名错误:使用“--”将路径与修订版本分开

5
我创建了一个 Git 命令,它可以显示 HEAD 和最后一个 Git-SVN 提交之间的差异。
Git 是该命令的名称。
git diff `git log --grep git-svn-id | grep commit | sed "s/commit //g" | head -1` HEAD

我想为它创建一个别名,我是这样做的:

git config --global alias.diffsvn 'diff `git log --grep git-svn-id | grep commit | sed "s/commit //g" | head -1` HEAD'

但是当我运行git diffsvn时,输出如下:

fatal: ambiguous argument '`git': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git [...] -- [...]'

我应该怎样才能让这个别名起作用呢?
1个回答

4

简短回答是您需要在差异的前面添加一个!git,以告诉git这是一个shell命令。 因此,这样做:

git config --global alias.diffsvn '!git diff `git log --grep git-svn-id | grep commit | sed "s/commit //g" | head -1` HEAD'

我建议采用这种方式代替:

git config --global alias.diffsvn '!git diff `git log --grep git-svn-id -1 | sed -n "s/commit //p"` HEAD'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接