git diff输出只改变了行

时间:2013-12-21 06:50:35

标签: git

如果我运行git diff我就会得到这个

diff --git a/README b/README
index 8d78ee4..67451cd 100644
--- a/README
+++ b/README
@@ -1,3 +1,3 @@
 dog
-cat
+fox
 bird

但我只想要这个

-cat
+fox

我最终使用了这个

git diff --color | awk '/^\033\[3[12]m/'

3 个答案:

答案 0 :(得分:3)

这适用于我的系统:

git diff --color | grep -P '\e\[3[12]m'

它使用颜色输出来区分这些线条。通过搜索绿色和红色标记,它应该只打印添加和删除的行。

如果您需要修改它,

This answer可能有助于更好地理解颜色方面。

答案 1 :(得分:1)

您可以使用-U--unified标记来指定要显示的上下文数量。

-U<n>, --unified=<n>
    Generate diffs with <n> lines of context instead of the usual three. Implies -p.

您需要-U0--unified=0

据我所知,git没有提供抑制标题的方法。

答案 2 :(得分:0)

SED

git diff | sed '/^i/{N;N};/^[-+]/b;d'

AWK

git diff | awk '/^i/{c=NR}NR>c+2&&/^[-+]/'

使用两种解决方案:

  1. 过滤掉+++---
  2. 过滤添加和删除的行