38

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

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

4

4 に答える 4

35

オンライン ソリューション:

get /repos/{owner}/{repo}/compare/{base}...{head}

compare two commits」APIは、複数のリポジトリをサポートしています。

:baseとの両方:headが のブランチ名である必要があります:repo
と同じネットワーク内の他のリポジトリ間でブランチを比較する:repoには、形式<USERNAME>:branch.

例:

https://api.github.com/repos/octocat/hello-world/compare/master...abejpn:master

または GitHub URL を使用:

https://github.com/octocat/Hello-World/compare/master...abejpn:master


元の回答2010:

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

Learn.GitHub:

git diff mainRepo/master...HEAD

から分岐してからのすべての変更を一覧表示しますmainRepo

これは、最後の 'master' ブランチのスナップショットと最後の 'dev' スナップショットを比較しません。代わりに、両方の共通の祖先を 'dev' と比較します。これにより、分岐点以降の変更点がわかります。

于 2010-09-25T08:51:14.613 に答える
6

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

于 2012-12-19T04:58:56.197 に答える
2

親/分岐点 sha1git merge-base master HEAD を取得: 差分を取得:git diff <sha1>

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

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

于 2015-10-16T20:11:47.157 に答える