Работу с Git поможет улучшить tig
Хочу поделиться опытом использования консольной утилиты tig, помогающей существенно поднять эффективность работы с Git. Еще в 2006 г. ее создал Jonas Fonseca из Канады, но она до сих пор применяется разработчиками. Здесь Вы сможете ознакомиться с ее функционалом и увидеть преимущества данной утилиты.
В утилите предлагается множество инструментов, позволяющих поднять производительность. Некоторым программистам удобнее создавать коды в консоли, хотя существует масса визуальных GUI , обеспечивающих функционал git. В ней реализована автоматическая корректировка, позволяющая быстро исправлять ошибки, автодополнения, алиасы и иные инструменты. Однако не очень комфортны и занимают много времени рядовые действия, такие как анализирование diff либо перемещения в истории commit, а также другие функции.
Инсталляция
Предлагающаяся инструкция детально описывает особенности инсталляции комплекса. Утилита доступна в Линуксе всем репозиториям:
apt-get install tig
yum install tig
Под Mac OS доступ осуществляется посредством применения менеджера пакетов Homebrew:
brew install tig
Можно скачать через git clone либо в релизах исходные коды и сделать make && make install
для прочих вариаций. Весь процесс детализированно изложен в прилагающейся к системе инструкции.
Конфигурирование
Благодаря файлу конфигурирования, tig комплекс предоставляет хорошие возможности для выполнения разнообразнейших настроек. Пути к нему задаются в
TIGRC_USER — ~/.tigrc
или в поддержке readline.
В системе есть возможность создания персональных команд. Примером может быть образец на Мас OS X, помогающий скопировать ID commit в буфер обмена:
bind generic 5 !@sh -c "echo %(commit) | pbcopy"
Утилита оснащается прекрасной инструкцией, где есть масса информации о ее функциональных возможностях.
Применение
В момент ввода команды tig из директории репозитория дизайна интерфейса имеет следующий вид:
Использование программы довольно интуитивное, что и можно было ждать в графическом интерфейсе. Предлагаю ряд необходимых сочетаний клавиш, помогающих выстраивать комфортную работу с утилитой.
Главной кнопкой является h:
, предоставляющая окно разных возможностей.
В системе реализован ряд режимов для views:
- main;
- режим log;
- просмотр текущего status, diff или tree;
- blame режим и пр.
Чтобы переключиться между режимами, стрелками выбираем соответствующую строку (file или log), нажимаем Ввод. Для blame нажимаем кнопку (b).
Используя Tab, делаем переключение в dual-split
, выполняя переходы между режимов. Учитывая зависимость соотношения габаритов монитора, система самостоятельно определяет горизонтальный или вертикальный режим экрана.
Разворачивание окна на мониторе обеспечит нажатие клавиши O.
Быстро возвращаемся в предшествующее состояние, закрывая рабочее окно режима, при помощи нажатия q (quit). Просматривая diff,кнопкой [ n ], можно комфортно увеличить объем строчек внизу и вверху измененной строчки.
Утилита предлагает функцию открытия файлов через внешний редактор (e), а также поиска в окне (/), либо в файлах (g — grep) . Имеющие опыт работы в vim, будут комфортно чувствовать себя в этой системе. Можно переходить на необходимую строку или вводить разные команды с помощью :
Drop-in смена git
Иногда tig используется как drop-in замена git для нескольких команд.
tig status
tig log
tig show
tig blame file
tig grep pattern
tig refs
tig stash
tig status
Аналогично для pager:
git show | tig
Итог: Созданная на C, утилита tig демонстрирует высокие скорости работы даже на огромных репозиториях. Прямо в терминале тут можно получить комфортный и интуитивный интерфейс, не выполняя переключений окон. Благодаря этой программе я смог очень существенно поднять продуктивность работы с Git. Утилита предлагает быстрые инструменты навигации в истории, а также по всем изменениям в git-репозитории.