如何查看forked github项目的diff

时间:2010-09-25 08:07:00

标签: git diff github fork master

我已经在github上分叉了一个项目,并且需要在我分叉后以diff格式进行一系列更改。

如果你想知道 - 我已经分叉了Apache httpd,我正在改变核心代码。目前我没有提交任何更改,运行git diff,并在RPM构建过程中将其输出用作针对vanilla httpd源的补丁。当然,这是错误的,但我不知道如何正确地做到这一点。我所知道的是我最终需要一个差异。

4 个答案:

答案 0 :(得分:27)

  • 在您的本地仓库中添加原始GitHub仓库(您已经分叉的仓库)作为远程仓库。
    (的 git remote add mainRepo github_url
  • git fetch mainRepo 从原始“mainRepo”获取最新更改。
  • git log HEAD..mainRepo/master 会显示最新的mainRepo主分支与您当前分支之间的所有更改。
    git diff HEAD..mainRepo/master 会以差异格式显示。

learn.GitHub中:

git diff mainRepo/master...HEAD

会列出您从mainRepo分配的所有更改:

  

这不会比较最后一个'主'分支快照和最后一个'dev'快照 - 它会将两者的共同祖先与'dev'进行比较。这将告诉你自分支点以来发生了什么变化。

答案 1 :(得分:4)

如果您将跟踪“上游”仓库的分支推送到您的存储库,那么您也可以在github中看到差异:

 git remote add mainRepo github_url
 git fetch mainRepo
 git branch main_repo_master mainRepo/master
 git push origin main_repo_master

然后在网上看到它:

https://github.com/rdp/mplayer-svn/compare/master ... main_repo_master

参考:http://betterlogic.com/roger/2012/04/github-compare-commits

答案 2 :(得分:2)

获取父/叉点sha1:git merge-base master HEAD 得到差异:git diff <sha1>

或者在一个命令中:git difftool $(git merge-base master HEAD)

与sugar命令相同:git diff master...HEAD

答案 3 :(得分:2)

这是一个老问题,但我发现了一个非常好的方法直接从Github获取补丁或差异文件

当你在叉子上时,有一个&#34;比较&#34;链路即可。使用它,您将进入比较视图。

实施例

https://github.com/luisgoncalves/xades4j/compare/master...beat2:master

现在你可以手动添加&#34; .diff&#34;或&#34;。补丁&#34;到此网址的末尾,您可以直接在浏览器中获取该文件。

实施例

https://github.com/luisgoncalves/xades4j/compare/master...beat2:master.diff

来源:https://github.com/blog/967-github-secrets