web-dev-qa-db-ja.com

フォークされたgithubプロジェクトの差分を表示する方法

Githubでプロジェクトをフォークしましたが、フォークしてから行った一連の変更をdiff形式で行う必要があります。

不思議に思うなら-私はApachehttpdをフォークし、コアのコードを変更しています。現在、私は変更をコミットせず、git diffを実行しており、RPM構築プロセスでVanillahttpdソースに対するパッチとしてその出力を使用しています。もちろん間違っていますが、正しく行う方法がわかりません。私が知っているのは、最終的に差分が必要なことだけです。

32
GDR
  • 元のGitHubリポジトリ(フォークしたもの)をリモートリポジトリとしてローカルリポジトリに追加します。
    git remote add mainRepo github_url
  • git fetch mainRepo元の「mainRepo」から最新の変更を取得します。
  • git log HEAD..mainRepo/masterは、mainRepoマスターブランチの最新のものと現在のブランチの間のすべての変更を表示します。
    git diff HEAD..mainRepo/masterはdiff形式で表示します。

learn.GitHub

git diff mainRepo/master...HEAD

mainRepoからフォークしたため、すべての変更が一覧表示されます。

これは、最後の「マスター」ブランチスナップショットと最後の「開発」スナップショットを比較しません。代わりに、両方の共通の祖先を「開発」と比較します。これにより、分岐点から何が変わったかがわかります。

28
VonC

これは古い質問ですが、Githubから直接パッチまたはdiffファイルを取得するという非常に優れた方法を見つけました。

あなたがあなたのフォークにいるとき、"比較"リンクがあります。これを使用すると、比較ビューが表示されます。

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

これで、このURLの最後に「.diff」または「.patch」を手動で追加することができ、ブラウザで直接ファイルを取得できます。

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

ソース: https://github.com/blog/967-github-secrets

5
beat

「アップストリーム」リポジトリを追跡するブランチをリポジトリにプッシュすると、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

4
rogerdpack

親/フォークポイントを取得sha1:_git merge-base master HEAD_差分を取得:_git diff <sha1>_

または1つのコマンドで:git difftool $(git merge-base master HEAD)

これはsugarコマンドと同じです:_git diff master...HEAD_

2
AuthorProxy