3

HEAD と最後の Git-SVN コミットの差分を表示する git コマンドを作成しました。

コマンドは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、差分の前に , を追加して、それがシェル コマンドであることを git に伝える必要があるということです。したがって、この:

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 に答える