LINUX.ORG.RU

[git]Получить разницу между двумя ветками

 


0

1

Почитал ProGit, получил представление о ветках в git, но всё равно не выходит. Есть GIT-репозиторий TuxOnIce(http://git.tuxonice.net), хочу извлечь оттуда патч для 3.1-rc8(например).

Клонировал две ветки - master и combined. Их расположение примерно такое(верно?):

		   combined
		       |
		      \ /
	      e - f  - g
	     /
a - b - c - d
	   / \
	    |
	  master

Мне нужно получить разницу между веткой master и combined до коммита f(с тегом v3.1-rc8 и хэшем a102a9e).

git checkout combined && git diff master..<хэш> --patch-with-raw > <файл патча>

Генерирует совершенно не тот патч, который нужен, что я делаю не так? Без "..<хэш коммита>" выделит в патч полную разницу между ветвями(коммиты e, f и g), а не то, что нужно(только коммиты e и f).

★★★★★

Последнее исправление: Lighting (всего исправлений: 1)

Ответ на: комментарий от yoghurt

Генерирует тот же патч, что и

git checkout combined && git diff master..<хэш>

то есть, не тот.

Lighting ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Разве эти команды не равноценны? Судя по help, именно так. Патч генерирует тот же самый.

Lighting ★★★★★
() автор топика

Может совсем втупую — сделать два каталога с нужными ветками, и простой diff на них натравить?

anonymous
()
Ответ на: комментарий от post-factum

Да, всё так, патч именно тот, но почему? Ветку stable, которая короче остальных, влили в combined же, разве это не должно было сделать перемотку до последнего коммита combined?

Lighting ★★★★★
() автор топика
Ответ на: комментарий от post-factum

git checkout -b combined tuxonice-head/combined

git reset --hard f

git diff tuxonice-head/stable combined >tuxonice-3.1-rc8.patch

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.