3

我创建了一个 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并获得该命令的输出时,我得到了

致命:模棱两可的参数“git”:未知的修订版或路径不在工作树中。使用 '--' 将路径与修订分开,如下所示:'git [...] -- [...]'

我怎样才能使这个别名起作用?

4

1 回答 1

3

简短的回答是你需要!git在 diff 前面添加一个 , 来告诉 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'
于 2013-06-12T14:29:55.890 回答