Подтвердить что ты не робот

Git показать фиксацию за пределами сравнения

Я хотел бы увидеть конкретную фиксацию в Beyond Compare или любой другой отдельный инструмент diff при просмотре через git show. Я попробовал посмотреть на git show/difftool/config, но ничего не нашел. Кто-нибудь знает, как это можно сделать?

Я просмотрел Git Diff with Beyond Compare и настроил Beyond Compare для git difftool, но я также хочу использовать его как инструмент из git show

4b9b3361

Ответ 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