【问题标题】:Github/compare: How to diff two different files (different file names, both in HEAD)?Github/compare:如何区分两个不同的文件(不同的文件名,都在 HEAD 中)?
【发布时间】:2015-08-13 20:33:29
【问题描述】:

我可以使用 github /compare 来显示 HEAD 中两个不同源文件之间的差异吗?

这是我在命令行中使用git diff 的方法:

git diff HEAD:docs/tutorial/01-boxed-function-pointers.cpp HEAD:docs/tutorial/02-raw-actors.cpp

我对 github 语法的最佳猜测如下。但它不起作用:

https://github.com/RossBencina/Fractorp/compare/HEAD:docs/tutorial/01-boxed-function-pointers.cpp...HEAD:docs/tutorial/02-raw-actors.cpp

我特别想要一个在线漂亮打印的 diff 的 HTML 渲染。

如果这不能用 github 完成,任何人都可以推荐一个第三方网站,该网站将呈现 github 上托管的两个任意文件的差异?

编辑#1:

感谢推荐https://www.diffchecker.com的答案。但是,我需要能够将源文件指定为 github 上的当前 HEAD。任何第三方工具都需要自动从 github repo URL 中提取最新的源文件。我注意到http://www.mergely.com 可以从 URL 中导入源。但是,我正在寻找始终使用最新 HEAD 的实时视图。

谢谢。

【问题讨论】:

  • 奇怪的是,他们基于 Git 的 wiki 支持 (example)。

标签: github git-diff


【解决方案1】:

我有时会在 diffchecker 网站上使用 Diff Checker 工具。它是一个在线比较工具,用于比较两个文本文件之间的文本差异。

链接:https://www.diffchecker.com/diff

【讨论】:

  • 谢谢,但我需要一些能够从 github 动态提取最新资源的东西。我已将问题更新为更清晰。
【解决方案2】:

这个第三方在线diff工具我用了很久了,如果你喜欢,也可以用。 https://www.diffchecker.com。但似乎您应该手动将这两个文件粘贴到它上面。

【讨论】:

  • 谢谢,但我需要一些能够从 github 动态提取最新资源的东西。我已将问题更新为更清晰。
【解决方案3】:

情况

在我的 DevOps 团队中,需要创建新的基础架构资源(通过基础架构即代码)是很常见的,这与现有基础架构非常相似,但只需进行一些更改。当收到 GitHub 的“拉取请求”时,代码审查者会看到数千行代码以 审查批准. 即使如果他们知道应该更改代码的哪一小部分,他们也会觉得“必须从正确的位置正确复制所有其他绿色/新代码。

我知道如何通过 CLI 做到这一点!但是,因为我们有一个以 GitHub Enterprise(和私人存储库)为中心的工作流程,所以我的团队不会将 CLI 用于此或其他任何事情。

权宜之计

由于GitHub only accepts points in history for comparisons 而不是路径,我必须变得聪明。

假设 FileA 是原始文件,FileB 是修改后的文件,位于新路径

  • 创建一个临时分支(使用“diff-TICKET-1234”之类的命名约定)
  • 将 FileA 复制到 FileB 上
  • 提交
  • 推送到github
  • 在获取 PR 的分支中的最后一条提交消息(在本例中为“TICKET-1234”)中,添加注释:
    • See: https://github.com/org_name/repo_name/compare/diff-TICKET-1234..TICKET-1234

【讨论】:

    【解决方案4】:

    Line Diff 将在两个代码 sn-ps 之间显示类似 github 的差异,但是您将无法在 github 上将源文件指定为当前 HEAD - 我只是认为这是一个边缘案例,没有人想到使其成为这些在线工具之一的“功能”。

    【讨论】:

      【解决方案5】:

      这有点作弊,您应该查看“高级”选项:点击DiffNow 端点将为您提供一个 JSONp 回调,其中包含一个包含差异的临时 HTML 文件的名称。

      https://www.diffnow.com/EdpProcess.aspx?action=compareUrls&url1=https%3a//raw.githubusercontent.com/RossBencina/Fractorp/master/docs/implementing-tutorial/01-boxed-function-pointers.cpp&url2=https%3a//raw.githubusercontent.com/RossBencina/Fractorp/master/docs/implementing-tutorial/02-raw-actors.cpp
      

      【讨论】:

      • 现在不行了。他们已切换到通过 JSON POST 发送 url。
      猜你喜欢
      • 2013-12-10
      • 2011-12-29
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多