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

Jac*_*ieg 5 git git-config git-alias

我创建了一个 git 命令来显示 HEAD 和最后一次 Git-SVN 提交之间的差异。

Git 是命令

git diff `git log --grep git-svn-id | grep commit | sed "s/commit //g" | head -1` HEAD
Run Code Online (Sandbox Code Playgroud)

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

git config --global alias.diffsvn 'diff `git log --grep git-svn-id | grep commit | sed "s/commit //g" | head -1` HEAD'
Run Code Online (Sandbox Code Playgroud)

但是当我运行git diffsvn并获得该命令的输出时,我得到了

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

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

cfo*_*ish 4

简短的回答是你需要!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'
Run Code Online (Sandbox Code Playgroud)

我建议这样做:

git config --global alias.diffsvn '!git diff `git log --grep git-svn-id -1 | sed -n "s/commit //p"` HEAD'
Run Code Online (Sandbox Code Playgroud)