Визуализация изменений Git (Linux)

git diff ...показывает разницу, но в терминале.

Мне нужен графический интерфейс для визуализации файлов git diff ....

Насколько я пытался git diff ... | kompare -. Это работает, но показанный контекст - это только то, что доступно из .diff, а не полное содержимое файла.

Вероятно, было бы лучше иметь возможность видеть полное содержимое файла в визуализаторе различий.

Я могу дважды проверить репозиторий Git, дважды экспортировать и сравнить с помощью инструмента сравнения с графическим интерфейсом (например, Kompare). Но это обременительно. Вы знаете лучший способ сделать это? Наконец, я мог бы попробовать сценарий оболочки, который выполняет две проверки и два экспорта во временный каталог, но это не лучшее возможное решение.

Вы хотите сравнить HEAD и ваш локально модифицированный клон? Или между любыми двумя версиями, возможно удаленными?
@NicolasRaoul Я хочу сравнить любые две версии. Нет необходимости в удаленном
если вам нужен инструмент с графическим интерфейсом, запустите git difftool --helpи посмотрите список поддерживаемых

Ответы (3)

Сам Git поставляется с gitk для просмотра репозитория (который включает в себя отображение различий между тем, что вы уже зафиксировали), gitgui и git difftool [который позволяет вам выбрать один из инструментов слияния, присутствующих в вашей системе]. Что я лично использую, так это Gitcola , который я считаю довольно удобным:

Джиткола
Gitcola (источник: Gitcola ; щелкните изображение, чтобы увеличить)

Он обрабатывает не только часть diff, но и большинство других действий, которые вам нужны в вашем повседневном рабочем процессе (фиксация, отправка, извлечение, создание тегов и т. д.).

В качестве альтернативы вы можете взглянуть на 6 полезных графических клиентов Git для Linux .

Также обратите внимание, что если вас не устраивает встроенный инструмент сравнения, вы всегда можете настроить внешний. Очень хорошим кандидатом для этого был бы Meld , который обычно доступен прямо из стандартных репозиториев большинства дистрибутивов:

Мелд Мэри
Мелд (источник: Мелд )

Обратите внимание, что такому внешнему инструменту сравнения не нужно знать о Git, поскольку взаимодействие с репозиторием покрывается Git Cola , а инструмент сравнения должен просто визуализировать различия, переданные ему Git Cola.

Я считаю, что gitkпоказывает только графическое представление деревьев ветвей, и хотя это очень полезно, отображаемые различия выглядят почти так же, как в командной строке. Я что-то упускаю?
@MichaelScheper цвета? Или тот факт, что это gitkбыл просто кульминационный момент, и мой ответ скорее рекомендует Gitcola? :)
Хи! ☺ Я вижу цвета, когда делаю это git diffв командной строке, поэтому Gitcola не дает мне особых преимуществ. Но, возможно, не все терминалы поддерживают цвет, особенно пользователи Windows, так что да, я вижу, это шаг вперед. Но я полагаю, что понял «графическое представление» как вид параллельного вывода с прокруткой разной длины, который SmartGit, в ответе @Tom, предоставляет, а также различные IDE. Но спасибо за разъяснения и острые ощущения от клиффхэнгера. 😉
Хорошо, если вам не нравится встроенный инструмент сравнения @MichaelScheper — вы всегда можете настроить внешний, например, Meld . Тогда не нужно знать git, так как Git Cola сама позаботится об этом, ему просто нужно визуализировать разницу. Угадайте meld, что идеально подходит под ваши пожелания, см., например, этот скриншот . Там обновил мой ответ. Счастливее? :)
Да, это тот, на который я надеялся. TBH, я обычно использую командную строку и vimdiff, но для более сложных изменений такие инструменты, как Meld и SmartGit, действительно облегчают жизнь. Спасибо!
Используйте --dir-diffдля получения всего каталога, в противном случае git запрашивает файл за файлом, хотите ли вы отобразить различия: git difftool --tool=meld --dir-diff develop. Одна из особенностей, которая мне нравится, заключается в том, что она не делает подсветку синтаксиса, что делает более ясным, где находятся изменения.

Я бы проверил SmartGit, он должен делать все, что вы хотите. Он доступен не только для Linux, но и для Windows и Mac. Он довольно прост в использовании и бесплатен для некоммерческих проектов.

SmartGit (бесплатно*)

SmartGit — это интерфейс для распределенной системы управления версиями Git, работающий в Windows, Mac OS X и Linux. SmartGit предназначен для разработчиков, которые предпочитают графический пользовательский интерфейс клиенту командной строки, чтобы быть еще более продуктивными с Git — самой мощной DVCS на сегодняшний день.

Пользовательский интерфейс SmartGit

* Для некоммерческой работы

Новый ответ на старый вопрос, но я вынужден. Еще один отличный вариант — GitLens.

Вчера обнаружил, что покидаю VCS другой IDE и вместо этого устанавливаю vscodium, чтобы использовать GitLens. То, как он контекстно перемещается к файлу, который вы открыли в редакторе, и представляет глубокую историю коммитов, является чистым блестящим удобством.

https://gitlens.amod.io/

https://vscodium.com/

введите описание изображения здесь