Как просмотреть diff разветвленного проекта github - PullRequest
31 голосов
/ 25 сентября 2010

Я разбудил проект на github, и мне нужен набор изменений, которые я сделал с тех пор, как разбудил, в формате diff.

Если вам интересно - я разветвлял Apache httpd и меняю некоторыекод в ядре.В настоящее время я не фиксирую никаких изменений, запускаю git diff и использую его вывод в качестве патча для исходных httpd-источников в процессе сборки RPM.Это, конечно, неправильно, но я не знаю, как это сделать правильно.Все, что я знаю, это то, что мне нужен diff в конце.

Ответы [ 4 ]

28 голосов
/ 25 сентября 2010
  • Добавьте исходное репозиторий 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:

Это не будет сравнивать последний «главный» снимок ветви и последний «dev» снимок - вместо этого будет сравниваться общий предок обоих с «dev». Это скажет вам, что изменилось с точки ветвления.

5 голосов
/ 10 мая 2017

Это старый вопрос, но я только что нашел очень хороший способ получить файл патча или diff напрямую из Github .

Когда вы находитесь на своей вилке, есть ссылка "Сравнить" . Используя это, вы попадаете в окно сравнения.

Пример

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

Теперь вы можете вручную добавить либо ".diff", либо ".patch" в конец этого URL , и вы получите файл прямо в браузере.

Пример

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

Источник: https://github.com/blog/967-github-secrets

4 голосов
/ 19 декабря 2012

Если вы добавите ветку, которая отслеживает репозиторий «вверх по течению», в ваш репозиторий, то вы также можете увидеть diff в самом 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

ref: http://betterlogic.com/roger/2012/04/github-compare-commits

2 голосов
/ 16 октября 2015

Получить родительскую / форковую точку sha1: git merge-base master HEAD Получите разницу: git diff <sha1>

Или одной командой: git difftool $(git merge-base master HEAD)

То же, что и команда сахара: git diff master...HEAD

...