мерзавец совершить вне всякого сравнения - PullRequest
21 голосов
/ 22 сентября 2011

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

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

Ответы [ 6 ]

23 голосов
/ 06 октября 2011

Мне удалось использовать git difftool, чтобы увидеть коммиты, которые я обычно использовал для просмотра через git show.

git show $commit переводится как git difftool $commit^ $commit.

Приведенная выше команда показывает разницу между родителем коммита ($ commit ^) и коммитом. Все это, конечно, после настройки Beyond Compare с difftool.

12 голосов
/ 20 августа 2013

Вы также можете создать псевдоним "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 с использованием настроенного difftool, или во втором случае git difftool HEAD~1 HEAD

3 голосов
/ 25 августа 2014

После того, как вы настроили инструмент сравнения, например, удивительный p4merge, вы можете сделать это:

git diff HEAD HEAD~1

Работает как шарм.

Аналогично, если вы хотите увидеть коммит до этого, вы можете сделать:

git diff HEAD~1 HEAD~2
1 голос
/ 16 июля 2013

Это хорошо сработало, чтобы показать разницу последнего коммита

git difftool HEAD~ HEAD

Для других коммитов вы можете заменить HEAD на хеш коммита, например:

git difftool 1234ABCD~ 1234ABCD
0 голосов
/ 28 декабря 2014

На основании ответа @javabrett, который я создал

https://github.com/albfan/git-showtool

для поддержки команд типа

$ git showtool -y :/my\ commit\ message
0 голосов
/ 22 сентября 2011

Я думаю, что git show основано на наборе инструментов в переменной GIT_PAGER.Я не использую Beyond Compare, но я думаю, что вы можете попробовать что-то вроде этого:

$ GIT_PAGER='bc3' git show <whatever>

Возможно, вам следует заполнить переменную GIT_PAGER некоторым дополнительным параметром, который позволяет bc3 обрабатывать ввод.

Есть более подходящие способы сохранить пейджер. Этот вопрос может дать вам больше советов о том, как это сделать.

...