views:

32

answers:

1

I have forked a project on github and need to have a set of changes I made since I forked, in diff format.

If you wonder - I've forked Apache httpd and I'm changing some code in core. Currently I'm not commiting any changes, running git diff, and use its output as a patch against vanilla httpd sources in an RPM building process. It is, of course, wrong, but I don't know how to do it properly. All I know is I need a diff in the end.

+2  A: 
  • Add the original GitHub repo (the one you have forked) as a remote one on your local repo.
    (git remote add mainRepo github_url)
  • git fetch mainRepo to get the latest changes from that original "mainRepo".
  • git log HEAD..mainRepo/master will show you all your changes between the latest on mainRepo master branch and your current branch.
    git diff HEAD..mainRepo/master would display it in diff format.

In learn.GitHub:

git diff mainRepo/master...HEAD

would list all your changes since you have forked from mainRepo:

This will not compare the last ‘master’ branch snapshot and the last ‘dev’ snapshot - it will instead compare the common ancestor of both with ‘dev’. That will tell you what changed since the branch point.

VonC
Thank you very much, this solves my issue. I definitely need to spend some time to understand git philosophy deeper.
GDR