Я пытался:
git diff sha1 sha2
Но результат не самый лучший, можно ли увидеть разницу между двумя фиксациями с помощью gitk?
Я пытался:
git diff sha1 sha2
Но результат не самый лучший, можно ли увидеть разницу между двумя фиксациями с помощью gitk?
По крайней мере, в окнах это вполне возможно:
Не уверен, действительно ли вам нужен diff или вам нужно обычное представление gitk, но только для коммитов, ведущих от sha1
к sha2
В последнем случае вы можете указать все обычные параметры ревизии: https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html
Таким образом, вы можете делать такие вещи, как
gitk sha1..sha2
или если мастер был объединен с веткой sha2
, и вы не хотите видеть коммиты, исходящие от мастера и sha1
, это первый коммит, ответвленный от master
использования
gitk master..sha2
К сожалению, gitk
не поддерживает вывод diff таким образом. :-( Однако вы можете использовать git difftool
. Он поставляется с поддержкой ряда встроенных инструментов. Например, вы можете сделать git difftool -t kdiff3 sha1 sha2
. Он показывает различия файлов по одному. В списке git говорилось о поддержке большего, чем просто один файл за раз с помощью инструмента сравнения, но я не уверен, где это закончилось.Я еще не видел патча, реализующего это.
gitk
не может использовать внешний инструмент сравнения? Кстати, теперь вы можете использовать git difftool -d sha1 sha2
для просмотра различий в каталогах.
- person shengy; 22.12.2012
gitk
теперь поддерживает external diff
, но он может использовать difftool только для сравнения одного файла за раз. И я уверен, что git
теперь поддерживает сравнение каталогов с помощью команды git difftool -d sha1 sha2
. Моя версия git - 1.8.0
, и я считаю, что эта функция была реализована в версии 1.7.11
или некоторых других более ранних версиях.
- person shengy; 22.12.2012
Нет, но вы можете сделать это с помощью meld:
git checkout sha1
git reset sha2
git diftool --tool=meld
Хитрость заключается в том, что, проверяя sha1 и затем сбрасывая его на sha2, вы делаете все различия между ними кажущимися незафиксированными изменениями. Затем meld может использовать свою способность просматривать незафиксированные изменения, чтобы одновременно сравнивать все задействованные файлы.