Поначалу мне не очень понравилась интеграция git в phpStorm. Наверно потому, что я ко времени первого своего знакомства с этим инструментом уже довольно долго работал с SourceTree. Последний - реально хорош, там есть все (почти все), что необходимо разработчику для ежедневной работы с гитом. Однако я решился, и заставил себя пользоваться инструментарием от jetBrains, и в принципе, нашел там определенные удобства.

Хотел бы сразу выделить несколько минусов:

  • Интеграция VCS в phpStorm не достаточно наглядная. Оно, в принципе, и понятно. Ведь основной упор в работе с кодом идет на редактор. Просмотру истории и сравнению уделено достаточно мало места, на мой взгляд.
  • Нет уведомлений об обновлениях удаленного репозитория, даже после fetch (автоматического или нет)
  • Для просмотра изменений в истории нужно сделать очень много кликов мышью

Это, конечно все, мои придирки, но они оказывают определенное влияние. Поэтому я иногда все же запускаю SourceTree, особенно часто для изучения истории.

Подключить репозиторий к своему проекту достаточно просто. Для этого нужно иметь установленный git на вашем ПК (как его установить, оставим за рамками этой статьи), а также сам репозиторий, который находится в директории проекта (файлы проекта для репозитория должны быть файлами рабочей копии).

Идем в настройки проекта -> Version Control. Если репозиторий уже лежит в директории проекта, то phpStorm уже сразу вам подскажет о том, что в вашей проекте есть незарегистрированные репозитории.

Если так - то просто выделяем определенный репозиторий, и жмем плюсик под списком. Если нет - то просто жмем плюсик, указываем путь до репозитория и тип репозитория (в нашем случае - git). Все! 🙂

После этого в phpStorm появляются новые элементы интерфейса:

  1. В правом нижнем углу (рядом с кодировкой файла) появляется указатель на текущую ветку, который одновременно является переключателем веток. С помощью него можно управлять существующими ветками, переключаться между ними, сливать, создавать. В окне доступен быстрый поиск, просто набираем название ветки, когда окошко открыто.
  2. Меню VCS обзаводится большим количеством пунктов, с помощью которых можно выполнить почти любые операции в системе контроля версий. Там же можно подсмотреть хоткеи
  3. В редакторе напротив измененных строк появляются метки, символизирующие собой сделанные изменения. Для новых строк они помечаются зеленым, для измененных - голубоватым, а для удаленных - в виде свернутой стрелки
    Если нажать на указатель, то появится всплывающее окно, которое позволит просмотреть сделанные изменения и если хотите - тот же их откатить, скопировать или сравнить.
  4. Если не включен тулбар, то надо обязательно его включить - View - Tool Windows - Changes. Это в общем-то самый главный инструмент в работе с системой контроля версий. Сам тулбар делится на 2 вкладки: Local и Log. Во вкладке Local отображается весь перечень модифицированных на данный момент файлов, всех бесконтрольных файлов.

    На вкладке Log можно просмотреть дерево коммитов. Ну и естественно тут можно сделать кучу операций с деревом, а именно - просмотреть содержимое каждого коммита, сравнить их, отфильтровать ветки. Из контекстного меню при клике пкм по коммиту можно сделать Cherry pick или, например, откатиться по истории назад с помощью reset.
  5. Ну и последнее - контекстное меню редактора дополнилось пунктами с возможностями git, которые в принципе повторяют возможности основного меню.

Вот как-то так вкратце все это выглядит. На самом деле возможности куда шире, но их изучение, на мой взгляд, достаточно тривиально и не требует помощи.

В принципе - все круто!
О недостатках я писал выше, теперь попробую отметить основные плюсы, которые я нашел для себя в этом инструменте по сравнению с SourceTree.

  • Все инструменты находятся внутри IDE. Не надо никуда ни в какие окна переключаться, все находится в шаговой доступности. Надо узнать в какой ветке - смотришь в правый нижний угол. Надо посмотреть изменения - включаешь тулбар changes.
  • Очень удобный инструмент по слиянию изменений. Бывает, что при слиянии возникают конфликты. Лезть в файлы и вручную удалять метки - не всегда удобно, т.к. их может быть очень много, сами они могут содержать много содержимого - очень просто запутаться. phpStorm же при слиянии, если возник конфликт, предлагает слить правки с помощью визуального интерфейса, где все очень наглядно можно по быстрому раскидать.
  • Всегда перед глазами есть весь список измененных и недобавленных в репозиторий файлов. Коммит производится либо по списку всех измененных файлов (т.н. Changelist, коих может быть великое множество), либо можно выбрать несколько файлов и закоммитить.
  • Перед коммитом можно выполнить множество разных операций - проанализировать код, проверить TODO и т.д.

Все это очень удобно, пользуйтесь, работайте эффективнее!