githubでプロジェクトをフォークしましたが、フォークしてから行った一連の変更をdiff形式で行う必要があります。
不思議に思うかもしれませんが、私はApache httpdをフォークし、コアのコードを変更しています。現在、私は変更をコミットしておらず、git diffを実行しており、その出力をRPM構築プロセスのバニラhttpdソースに対するパッチとして使用しています。もちろん間違っていますが、どうすればいいのかわかりません。私が知っているのは、最終的に差分が必要なことだけです。
オンライン ソリューション:
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:
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
。
これは、最後の 'master' ブランチのスナップショットと最後の 'dev' スナップショットを比較しません。代わりに、両方の共通の祖先を '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
親/分岐点 sha1git merge-base master HEAD
を取得: 差分を取得:git diff <sha1>
または、1 つのコマンドで:git difftool $(git merge-base master HEAD)
これは sugar コマンドと同じです:git diff master...HEAD