Как просмотреть diff разветвленного проекта github
Я разветкил проект на github и должен иметь набор изменений, которые я сделал с тех пор, как я разблокировал, в формате diff.
Если вам интересно - я разветкил Apache httpd, и я меняю код в ядре. В настоящее время я не совершаю никаких изменений, запускаю git diff и использую его вывод в качестве патча против ванильных httpd-источников в процессе сборки RPM. Это, конечно, неправильно, но я не знаю, как это сделать правильно. Все, что я знаю, в конце концов мне нужен diff.
Ответы
Ответ 1
- Добавьте исходный репозиторий 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. Это скажет вам, что изменилось с точки перехода.
Ответ 2
Если вы нажмете ветку, которая отслеживает репозиторий "вверх по течению" в вашем репозитории, вы также можете увидеть 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
Ответ 3
Получить родительскую/fork-точку sha1: git merge-base master HEAD
Получить diff: git diff <sha1>
Или в одной команде: git difftool $(git merge-base master HEAD)
Что такое команда сахара: git diff master...HEAD
Ответ 4
Это старый вопрос, но я нашел очень хороший метод получить патч или файл 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