git - 在单个比较窗口中比较多个文件的差异
问题描述
我在我的项目中做了一个简单的正则表达式查找和替换,它影响了大约 300 个文件,每个文件大多 2-5 行。此外,还有一些小的调整和手动更改来修复不规则的情况。
现在我想查看所有差异并使用一些比较工具比较每个更改(最好在比较 4 之外)。
我想出的最好的方法是使用git diff > changes.diff
,但这仍然是一个文档,我更喜欢并排查看它。
有没有办法在一个比较窗口中查看所有差异?
PS我可能会解析差异文件并将+
行带到一个文件并将-
行带到另一个文件,但希望有一些自动供我使用。
编辑:
我不是在寻找一种使用 Beyond Compare 之类的工具来比较差异的方法。我想一次查看来自多个文件的所有更改作为并排比较。我不想一个一个地检查 300 多个文件并使用 BC 进行比较,而是想打开一个包含所有更改的单个文件,并将其与没有更改的同一个文件进行比较。
例如,如果我有 2 个文件test1.cpp
并且test2.cpp
我这样做了,git diff
我会得到:
diff --git.....
--- a/file1.cpp
+++ b/file1.cpp
@@ ....
- foo("a", "b");
+ bar("a", "b");
--- a/file2.cpp
+++ b/file2.cpp
@@ ....
- foo("x", "y");
+ bar("x", "y");
我希望能够打开 BC 并看到类似的内容(在单个选项卡/窗口中):
--- a/file1.cpp | +++ b/file1.cpp
foo("a", "b"); | bar("a", "b");
|
--- a/file2.cpp | +++ b/file2.cpp
foo("x", "y"); | bar("x", "y");
解决方案
使用 Beyond Compare 将所有文件差异输出到单个文件:
- 超越比较。
- 打开文件夹比较并加载一对文件夹。
- 选择要比较的文件。
- 操作 > 文件比较报告。
- 选择并排作为报表布局。
- 将输出选项设置为 HTML 报告或纯文本。
一次循环浏览一个文件:
- 超越比较。
- 打开文件夹比较。
- 加载一对文件夹。
- 双击文件夹比较中的第一对文件以在文本比较中显示它们的内容。
- 使用搜索 > 下一个差异 (Control+N) 循环浏览当前文件中的差异。
- 使用搜索 > 下一个差异文件 (Control+M) 循环到下一个文件。
推荐阅读
- c++ - 错误:内存位置的 std::length_error
- vba - 如何在 Excel VBA 组合框中创建“嵌套”下拉菜单?
- tomcat - java.lang.IllegalArgumentException:指定的类型 [com.sun.faces.application.WebappLifecycleListener] 不是预期的侦听器类型之一
- dns - Kubernetes DNS 失败
- javascript - React pdf onclick 下载
- ios - 检查错误(错误代码)是否属于网络错误
- maven - fabric8 资源无效名称
- microservices - 当请求需要更多时间来处理时,Zuul 代理服务器抛出内部服务器错误
- angular - 在Angular HTTP中自动映射后如何调用对象中的方法?
- php - db4free.net 错误:“连接失败:服务器向客户端发送未知字符集”