我需要为单个文件生成一个diff,它将显示两个版本之间的差异,这两个版本实际上是github中的标记.然后,我想通过电子邮件将此差异发送给某人,因此差异的github URL将是理想的.github比较视图将允许我对所有已更改的文件执行此操作,但这并不好,因为我的repo中有数千个文件.
我可以在命令行中执行此操作,如下所示,但这没有帮助,因为我需要通过电子邮件将差异发送给某人:
git diff tag1 tag2 -- path/to/file
Run Code Online (Sandbox Code Playgroud)
我在这里讨论了命令行版本: 如何在本地分支和远程分支之间查看指定文件的差异?
nul*_*ken 80
GitHub只暴露了在两次提交之间显示差异的方式.
如果这些标签实际指向提交,则Url格式就像
https://github.com/{user}/{repository}/compare/{from-tag}...{until-tag}
例如,https://github.com/libgit2/libgit2sharp/compare/v0.9.0...v0.9.5显示了两个版本的LibGit2Sharp项目之间的差异.此差异包括所有已修改的文件.
如果要检索定位特定文件的URL:


例如,鉴于上面的差异,链接https://github.com/libgit2/libgit2sharp/compare/v0.9.0...v0.9.5#diff-11将指向LazyFixtures.cs版本v0.9.0和版本v0.9.0之间发生的更改v0.9.5.
根据您的评论说明您的差异太大而无法通过Web界面呈现,那么如何恢复到良好的旧命令行工具?您可以将diff的输出重定向到文件,然后将该文件作为电子邮件附件发送.
$ git diff v0.9.0 v0.9.5 -- LibGit2Sharp.Tests/LazyFixture.cs > /tmp/lazyfixture.diff
Run Code Online (Sandbox Code Playgroud)
以下问题适用时,我的解决方法如下.
这个比较很大!我们只显示最近的250次提交
将要比较的文件的原始视图复制到https://gist.github.com/.使用要比较的两个特定提交点.从较早的提交开始.
单击"修订"时,https://gist.github.com/有一个很好的并排差异视图.
| 归档时间: |
|
| 查看次数: |
70725 次 |
| 最近记录: |