如何仅在 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>
- Select 两个文件,和 TortoiseGit -> Diff
- 在 TortoiseGitMerge 中创建补丁文件
- 统一差异文件
更新
仅用于查看差异,使用 "Collapse"。
更新 2
如果不需要上下文,只需将 "Context lines for patches" 设置为零即可。
我有两个(大)文件,我只需要提取 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>
- Select 两个文件,和 TortoiseGit -> Diff
- 在 TortoiseGitMerge 中创建补丁文件
- 统一差异文件
更新
仅用于查看差异,使用 "Collapse"。
更新 2
如果不需要上下文,只需将 "Context lines for patches" 设置为零即可。