如何仅在 TortoiseGit 或 Windows 的差异中获取更改的行?

How to get changed lines only in diff in TortoiseGit or with Windows?

我有两个(大)文件,我只需要提取 changed/added 行。是纯文本文件 (CSV)。

只需 return 并使用这些行保存第三个文件..

更新

我使用 here 中描述的 "Show Differences Only" 函数通过 DiffMerge 解决了问题。

顺便说一下,我仍然需要一个 "programmatically" 做同样事情的解决方案,但我会创建另一个问题,也许是因为我在 Linux 环境中需要它。

更新 2

也用 TortoiseGit 解决了,见下文。

diff --changed-group-format='%<' --unchanged-group-format='' file1 file2

您正在寻找的内容可能与 git diff 给出的默认统一差异格式一样简单,但删除了上下文行。您仍然会在每次更改前获得位置信息。

git diff --unified=0 <commit1>:<path/to/file1> <commit2>:<path/to/file2> > <output file>

文件不必在 Git 下进行版本控制,在这种情况下(或在同一版本中比较不同文件时),您可以省略提交引用。对于同一文件的不同版本

git diff --unified=0 <commit1> <commit2> -- <file> > <output file>
  1. Select 两个文件,和 TortoiseGit -> Diff

  1. 在 TortoiseGitMerge 中创建补丁文件

  1. 统一差异文件


更新

仅用于查看差异,使用 "Collapse"。


更新 2

如果不需要上下文,只需将 "Context lines for patches" 设置为零即可。