Git diff:仅显示已删除(未移动)的行

问题描述 投票:0回答:1

Git

diff
有很棒的
--color-moved
选项。所以我看到 Git 可以检测到行何时被移动,但实际上并没有被删除。

我需要检测已删除但未删除的行。简单地 grep

git diff
的输出以查找以
-
开头的行不会有帮助,因为这也会捕获移动的行。我们可以吗:

  1. 配置
    git diff
    仅显示删除的行,而不显示移动的行?
  2. 配置
    git diff --color-moved
    为移动的行使用不同的前导字符,以便我们可以在输出中 grep 查找前导
    -
    来查找已删除的行?
  3. Grep
    git diff --color-moved
    的输出(默认)红线,因为这些是已删除的行?
git grep diff
1个回答
0
投票

有点脆弱,但是:

git diff --color-moved=plain --color=always |
perl -pe 's/^\e\[31m-/!/; s/\e\[[0-9;]*m//g'
  • 将移动的线设置为不同的颜色
  • 即使在管道中也能强制着色
  • 使用 Perl 来:
    • 替换已删除行上的前缀字符
    • 删除 ANSI 转义序列
© www.soinside.com 2019 - 2024. All rights reserved.