我已經在github上分支了一個項目,並且需要有一組我在分叉格式化後做出的更改。如何查看分叉github項目的差異
如果你想知道 - 我已經分叉了Apache httpd,並且正在改變核心中的一些代碼。目前我沒有提交任何更改,運行git diff,並將其輸出用作RPM構建過程中針對vanilla httpd源的修補程序。當然,這是錯誤的,但我不知道如何正確地做到這一點。我所知道的是我最終需要一個差異。
我已經在github上分支了一個項目,並且需要有一組我在分叉格式化後做出的更改。如何查看分叉github項目的差異
如果你想知道 - 我已經分叉了Apache httpd,並且正在改變核心中的一些代碼。目前我沒有提交任何更改,運行git diff,並將其輸出用作RPM構建過程中針對vanilla httpd源的修補程序。當然,這是錯誤的,但我不知道如何正確地做到這一點。我所知道的是我最終需要一個差異。
git remote add mainRepo github_url
)git fetch mainRepo
得到從原來的 「mainRepo」 的最新變化。git log HEAD..mainRepo/master
將向您顯示mainRepo主分支上的最新分支與當前分支之間的所有更改。 git diff HEAD..mainRepo/master
將以diff格式顯示它。git diff mainRepo/master...HEAD
將列出所有更改,因爲你已經從mainRepo
分叉:
這不會比過去的「主」分支快照和最後一個「開發'快照 - 它會將兩者的共同祖先與'dev'進行比較。這將告訴你自分支點以來發生了什麼變化。
如果按跟蹤「上游」回購到存儲庫的一個分支,然後就可以看到在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
獲取父/叉點SHA1:git merge-base master HEAD
獲取DIFF:git diff <sha1>
或者在一個命令:git difftool $(git merge-base master HEAD)
這是一樣的糖命令:git diff master...HEAD
這是一個老問題,但我只是找到了一個非常好的方法來直接從Github獲得補丁或diff文件。
當您在叉子上時,有一個「比較」鏈接。使用你得到的比較視圖。
例
https://github.com/luisgoncalves/xades4j/compare/master...beat2:master
現在你可以手動添加或者「爲.diff」或「.patch」這個URL的結束,您可以直接在瀏覽器中得到的文件。
例
https://github.com/luisgoncalves/xades4j/compare/master...beat2:master.diff
非常感謝你,這解決了我的問題。我絕對需要花一些時間來深入理解git哲學。 – GDR 2010-09-27 09:42:58
+1。如果我可以添加兩個註釋:如果您目前在頭上,我相信HEAD部分是不必要的。另外,如果你想查看你配置的difftool中的變化,'git difftool mainrepo/master'和'git difftool ..mainrepo/master'是很有用的。 – 2013-01-11 16:49:24
如何通過TortoiseGit查看分叉項目的差異 - http://stackoverflow.com/a/7297491/968003 – 2016-12-28 05:07:09