16

通常の単純な古い diff 出力を出力したいgit diff(統合 diff ではなく、コンテキスト diff でもない)。

これ欲しい:

$ diff file1 file2
2c2
< b
---
> B
4d3
< d
5a5
> f

統一された出力は必要ありません:

$ diff -u file1 file2
--- file1       2012-07-04 07:57:48.000000000 -0700
+++ file2       2012-07-04 07:58:00.000000000 -0700
@@ -1,5 +1,5 @@
 a
-b
+B
 c
-d
 e
+f

コンテキスト出力は必要ありません:

$ diff -c file1 file2
*** file1       2012-07-04 07:57:48.000000000 -0700
--- file2       2012-07-04 07:58:00.000000000 -0700
***************
*** 1,5 ****
  a
! b
  c
- d
  e
--- 1,5 ----
  a
! B
  c
  e
+ f

さまざまなgit difftool --tool=引数を運が悪かったので試しましたが、関連するものは何も見つかりませんでしたgit diff --help

4

2 に答える 2

15
git difftool --extcmd=diff

または、プロンプトなしで:

git difftool --extcmd=diff --no-prompt

これはgit difftoolむしろではありgit diffませんが、私がやりたいことをやっています。

于 2012-07-05T23:54:47.870 に答える
2

同じスクリプトを使用できます (詳細については man git(1) を参照してください)。

$ cat diff.sh
#!/bin/sh
# get args: path old-file old-hex old-mode new-file new-hex new-mode

diff "$2" "$5"

return=$?
if [ $return -le 1 ]; then
    exit 0
else
    exit $return
fi

$ GIT_EXTERNAL_DIFF=./diff.sh git diff HEAD^..HEAD
于 2012-07-04T18:56:37.327 に答える