Git показать фиксацию за пределами сравнения
Я хотел бы увидеть конкретную фиксацию в Beyond Compare или любой другой отдельный инструмент diff при просмотре через git show
. Я попробовал посмотреть на git show/difftool/config, но ничего не нашел. Кто-нибудь знает, как это можно сделать?
Я просмотрел Git Diff with Beyond Compare и настроил Beyond Compare для git difftool
, но я также хочу использовать его как инструмент из git show
Ответы
Ответ 1
Мне удалось использовать git difftool
для просмотра коммитов, которые я обычно использовал для просмотра через git show
.
git show $commit
переводится на git difftool $commit^ $commit
.
Вышеприведенная команда показывает разницу между родителем-фиксатором ($ commit ^) и фиксацией. Все это, конечно, после настройки Beyond Compare с difftool.
Ответ 2
Вы также можете создать псевдоним "showtool" для переноса вызова на git difftool
:
set +o histexpand
git config --global alias.showtool "!sh -c 'if [ -z \$1 ]; then REVISION="HEAD"; else REVISION="\$1"; fi; git difftool \$REVISION~ \$REVISION' -"
.., то вы можете выполнить:
git showtool 81e945b
.. или просто
git showtool
.. как ярлык для git difftool 81e945b~1 81e945b
, чтобы показать изменения, внесенные в 81e945b
, с помощью сконфигурированного diffftool, или во втором случае git difftool HEAD~1 HEAD
Ответ 3
Как только у вас установлен инструмент diff, как и удивительный p4merge, вы можете сделать это:
git diff HEAD HEAD~1
Работает как шарм.
Аналогично, если вы хотите увидеть фиксацию до этого, вы можете сделать:
git diff HEAD~1 HEAD~2
Ответ 4
Это сработало для меня красиво, чтобы показать разницу последнего фиксации
git difftool HEAD~ HEAD
Для других коммитов вы можете заменить HEAD
на хеш фиксации, например:
git difftool 1234ABCD~ 1234ABCD
Ответ 5
Я думаю, что git show основан на наборе инструментов в переменной GIT_PAGER. Я не использую Beyond Compare, но я думаю, что вы можете попробовать что-то вроде этого:
$ GIT_PAGER='bc3' git show <whatever>
Возможно, вы должны заполнить переменную GIT_PAGER дополнительным параметром, который позволяет bc3 обрабатывать входные данные.
Есть более подходящие способы сохранения пейджера. Этот вопрос может дать вам больше советов о том, как это сделать.
Ответ 6
Основываясь на ответе @javabrett, я создал
https://github.com/albfan/git-showtool
для поддержки команд типа
$ git showtool -y :/my\ commit\ message