如何在线对比两个文件并查看完整上下文的diff?
在线获取带完整文件上下文的Unified Diff方法
GitHub公开仓库的实操方案
1. 改URL参数直接看全量diff
GitHub的diff页面支持通过URL参数强制显示完整文件内容。不管是两个commit的对比页,还是单个commit的diff页,只要在URL末尾加上?context=9999(9999足够大,能覆盖绝大多数文件的行数),就能看到每个变更文件的完整上下文,而不是只显示变更行附近的片段。
比如原来的对比URL是https://github.com/用户名/仓库名/compare/旧哈希...新哈希,改成https://github.com/用户名/仓库名/compare/旧哈希...新哈希?context=9999就行;单个文件的diff页同理,加个参数就搞定。
2. 用API批量自动收集
如果要批量处理大量commit哈希,直接用GitHub的REST API更高效:
- 对比两个commit:发送GET请求到
/repos/{owner}/{repo}/compare/{base}...{head},请求里带上context=9999参数,返回的响应里就有带完整上下文的unified diff内容。 - 获取单个commit的diff:发送GET请求到
/repos/{owner}/{repo}/commits/{commit_sha},同样加context=9999,就能拿到该commit所有变更文件的全量diff。
3. 下载全量diff文件
要是需要保存diff文件,先给diff页面URL加上?context=9999,再点击页面右上角的「Download diff」按钮,下载下来的文件就是包含完整文件内容的unified diff格式。
内容的提问来源于stack exchange,提问作者Queso Pez
相关产品推荐
相关产品推荐

