Tower 2 – новый Git-клиент для Mac

3

Git – это система контроля версий, инструмент для разработчиков ПО, позволяющий удобно управлять архивом исходных кодов и версиями ПО. Системы контроля версий упрощают совместную работу нескольких разработчиков над одaним проектом и используются в процессе доставки ПО на «продакшн».

Недавно вышла новая версия замечательного графического интерфейса для Git – Tower, которой и посвящён этот обзор.

Сначала немного бэкграунда: я использую Git ежедневно уже около года (до этого использовал SVN и только изредка Git). Кроме того, на паре репозиториев я использую Git-Flow и с парой работаю через Git-SVN.

Когда я говорю о графических надстройках над Git, меня часто спрашивают чем сам по себе CLI Git не угодил. Я умею работать с Git, но на мой взгляд, многие вещи делаются гораздо проще и быстрее с хорошим GUI (и да, я в курсе про Tig, но это совсем не то).

Графический интерфейс даёт чуть больше контроля и обладает лучшей визуализацией рабочей копии и истории. При этом, ничего не мешает использовать CLI Git одновременно с GUI, когда это удобно. Можно покликать по файлам, видеть изменения, конфликты, stash-и. А некоторые вещи с CLI делать просто жутко неудобно (в сравнение с GUI) – коммит отдельных строк файла, например. В графическом клиенте можно просто нажать на нужный блок или выделить нужные строки.

Надеюсь, я ответил зачем нужен графический клиент. Но у Tower есть и другие преимущества, которые я опишу далее. А параллельно я сравню его с популярным бесплатным клиентом SourceTree.

Работа с несколькими репозиториями одновременно

В Tower и раньше было очень удобно переключаться между различными рабочими копиями, но теперь можно открывать несколько окон. Одного не пойму – почему они не сделали табы. В SourceTree, кстати говоря, с этим ещё хуже – нельзя переключаться между рабочими копиями в одном окне, только закрывать и открывать новые.

Поддержка хостингов

Tower теперь поддерживает GitHub, Beanstalk и Bitbucket. SourceTree тоже поддерживает, но интерфейс у Tower к этой функции несомненно лучше. Кроме того, в Tower можно создавать новые репо на GitHub!

Новый интерфейс разрешения конфликтов

Конфликты никто не любит. Разрешение конфликтов в SourceTree для меня часто было неочевидным. Специально для того, чтобы сделать git проще для новичков, Tower имеет очень наглядный интерфейс разрешения конфликтов. Проще всего показать на скриншоте:

Поддержка Git-Flow

И в SourceTree, и в Tower есть поддержка Git-Flow. Это такая модель использования веток и консольная утилита для упрощения работы по этой модели. Git-Flow позволяет быстро и удобно делать ветки для новых фич, хотфиксов, релизов. В один клик в Tower можно создать ветку для хотфикса на основе релизного бренча, затем другим кликом отправить хотфикс в релиз и сделать слияние в ветку разработки. Обратная ситуация с «фичами» – они делаются на основе ветки для разработки и по завершению сливаются только в неё. Подробнее про Git-Flow можно прочитать здесь. Это удобно и позволяет поддерживать порядок в репозитории.

Новый диалог выбора рабочей копии

Тут всё просто: нажимаем CmdShiftO и вводим часть имени рабочей копии, чтобы переключиться на неё. Кому-то больше понравится workflow для Alfred 2. Есть workflow и для SourceTree. Продолжим минутку Alfred 2 на MacOSWorld: универсальный workflow для работы с git.

Поиск по именам файлов в истории

Удобно конечно. В CLI Git это делается вот так: git log – filename_or_path. Кроме того, можно искать даже по содержимому файлов в истории с помощью git grep.

Загрузка информации об изменениях в remotes в фоне

Тут Tower, откровенно говоря, проигрывает SourceTree. Насколько я понял – Tower делает это только для открытой рабочей копии, а SourceTree – для всех. И это, на мой взгляд, главный недостаток Tower, потому что без этого не удобно следить за изменениями в общих библиотеках. Да и с рабочим проектом не удобно, когда их несколько.

В истории отображаются не синхронизированные коммиты

Тут всё просто – в истории теперь видно, какие коммиты ожидают push или pull. Тут Tower опять в догоняющих, т.к. в SourceTree это уже было.

QuickLook

Появился Quick Look для файлов в рабочей копии. Мне всегда хватало открывать файлы дабл-кликом в приложении по умолчанию, так что без комментариев.

Очередь клонирования

Если вы когда-нибудь будете клонировать сразу несколько больших репозитория – вам это пригодится. Теперь это происходит в фоне.

Быстрый коммит

Суть этого нововведения в том, что для коммита больше не используется отдельное диалоговое окно. Теперь окно ввода комментария отображается сразу в режиме просмотра рабочей копии. К слову, недавно вышло мажорное обновление SourceTree и там такая фича тоже появилась. Это действительно удобно.

Tower vs SourceTree

Так что же всё-таки может заставить купить Tower? Сложный вопрос. Попробую назвать несколько преимуществ Tower над его единственным (по моему мнению) конкурентом SourceTree.

Интерфейс Tower действительно лучше

Как-то в твиттере встретил такую шутку: “Атлассиан прокляли. Всё, к чему он прикасается, превращается в Джиру”. Шутка конечно далека от правды, но интерфейс SourceTree действительно более запутанный, чем интерфейс Tower.

Автоматический stash

При операциях, в результате которых могут возникать конфликты, Tower сразу предлагает сделать stash. Таким образом код, который ещё не находится под управлением системы контроля версий, не будет испорчен.

А ещё в Tower можно применять stash на рабочую копию по частям, а в SourceTree только целиком.

Машина времени

Tower позволяет просматривать дерево файлов в определённой ревизии без переключения на неё. Очень удобная функция, хоть и пригождается редко.

Drag’n’Drop

В Tower некоторые операции можно делать простым перетаскиванием. Например, перетаскиванием ветки на текущую – это запустит слияние. А ещё в CLI неудобно делать cherry-pick, а здесь можно просто перетащить нужные коммиты на ветку.

В завершение

У нас здесь объективный обзор, поэтому моё мнение остаётся таким – у Tower нет никаких сокрушительных аргументов против SourceTree. Его интерфейс лучше, но не на $59. У него большое количество поклонников, возможно я просто чего-то не понимаю. Тем не менее, Tower это скорее всего лучший графический Git клиент, если бы не высокая цена. А я теперь счастливый его пользователь.

Позволю себе дать несколько рекомендаций тем, кто только начинает работать с Git:

  1. Пишите хорошие комментарии к коммитам. Я вижу плохие комментарии к коммитам каждый день и они меня огорчают. Хороший комментарий состоит из краткого описания, которое пишется в первой строке. И чуть более подробного описания, которое пишется в свободной форме после пустой строки. Но не нужно перепечатывать туда всю задачу – хорошей практикой является указание номера задачи в трекере.
  2. Commit early, commit often. Это правило гласит что чем чаще рабочая копия синхронизируется с репозиторием, тем меньше проблем у разработчика. Хорошее объяснение как делать правильные коммиты здесь.
  3. Прочитайте Git Best Practicies.
  4. Прочитайте Pro Git на русском языке.

Больше фич и меньше багов вам!

Tower 2
Разработчик: Fournova Software GmbH
Цена: 59.99 $
Поделиться
Сохранить
  • SourceTree + phpStorm. И пусть другие подождут.

  • Denys Butenko

    Спасибо за сравнение с SourceTree. Пробовал Tower, но не понял зачем платить 60$.

  • Kirill Nikolaenko

    Присоединяюсь к автору. Графическая мастурбация, но реальной пользы не увидел. Тем более на 60$ :)