Поначалу мне не очень понравилась интеграция git в phpStorm. Наверно потому, что я ко времени первого своего знакомства с этим инструментом уже довольно долго работал с SourceTree. Последний — реально хорош, там есть все (почти все), что необходимо разработчику для ежедневной работы с гитом. Однако я решился, и заставил себя пользоваться инструментарием от jetBrains, и в принципе, нашел там определенные удобства.
Хотел бы сразу выделить несколько минусов:
- Интеграция VCS в phpStorm не достаточно наглядная. Оно, в принципе, и понятно. Ведь основной упор в работе с кодом идет на редактор. Просмотру истории и сравнению уделено достаточно мало места, на мой взгляд.
- Нет уведомлений об обновлениях удаленного репозитория, даже после fetch (автоматического или нет)
- Для просмотра изменений в истории нужно сделать очень много кликов мышью
Это, конечно все, мои придирки, но они оказывают определенное влияние. Поэтому я иногда все же запускаю SourceTree, особенно часто для изучения истории.
Подключить репозиторий к своему проекту достаточно просто. Для этого нужно иметь установленный git на вашем ПК (как его установить, оставим за рамками этой статьи), а также сам репозиторий, который находится в директории проекта (файлы проекта для репозитория должны быть файлами рабочей копии).
Идем в настройки проекта -> Version Control. Если репозиторий уже лежит в директории проекта, то phpStorm уже сразу вам подскажет о том, что в вашей проекте есть незарегистрированные репозитории.
Если так — то просто выделяем определенный репозиторий, и жмем плюсик под списком. Если нет — то просто жмем плюсик, указываем путь до репозитория и тип репозитория (в нашем случае — git). Все! 🙂
После этого в phpStorm появляются новые элементы интерфейса:
- В правом нижнем углу (рядом с кодировкой файла) появляется указатель на текущую ветку, который одновременно является переключателем веток. С помощью него можно управлять существующими ветками, переключаться между ними, сливать, создавать. В окне доступен быстрый поиск, просто набираем название ветки, когда окошко открыто.
- Меню VCS обзаводится большим количеством пунктов, с помощью которых можно выполнить почти любые операции в системе контроля версий. Там же можно подсмотреть хоткеи
- В редакторе напротив измененных строк появляются метки, символизирующие собой сделанные изменения. Для новых строк они помечаются зеленым, для измененных — голубоватым, а для удаленных — в виде свернутой стрелки
Если нажать на указатель, то появится всплывающее окно, которое позволит просмотреть сделанные изменения и если хотите — тот же их откатить, скопировать или сравнить.
- Если не включен тулбар, то надо обязательно его включить — View — Tool Windows — Changes. Это в общем-то самый главный инструмент в работе с системой контроля версий. Сам тулбар делится на 2 вкладки: Local и Log. Во вкладке Local отображается весь перечень модифицированных на данный момент файлов, всех бесконтрольных файлов.
На вкладке Log можно просмотреть дерево коммитов. Ну и естественно тут можно сделать кучу операций с деревом, а именно — просмотреть содержимое каждого коммита, сравнить их, отфильтровать ветки. Из контекстного меню при клике пкм по коммиту можно сделать Cherry pick или, например, откатиться по истории назад с помощью reset. - Ну и последнее — контекстное меню редактора дополнилось пунктами с возможностями git, которые в принципе повторяют возможности основного меню.
Вот как-то так вкратце все это выглядит. На самом деле возможности куда шире, но их изучение, на мой взгляд, достаточно тривиально и не требует помощи.
В принципе — все круто!
О недостатках я писал выше, теперь попробую отметить основные плюсы, которые я нашел для себя в этом инструменте по сравнению с SourceTree.
- Все инструменты находятся внутри IDE. Не надо никуда ни в какие окна переключаться, все находится в шаговой доступности. Надо узнать в какой ветке — смотришь в правый нижний угол. Надо посмотреть изменения — включаешь тулбар changes.
- Очень удобный инструмент по слиянию изменений. Бывает, что при слиянии возникают конфликты. Лезть в файлы и вручную удалять метки — не всегда удобно, т.к. их может быть очень много, сами они могут содержать много содержимого — очень просто запутаться. phpStorm же при слиянии, если возник конфликт, предлагает слить правки с помощью визуального интерфейса, где все очень наглядно можно по быстрому раскидать.
- Всегда перед глазами есть весь список измененных и недобавленных в репозиторий файлов. Коммит производится либо по списку всех измененных файлов (т.н. Changelist, коих может быть великое множество), либо можно выбрать несколько файлов и закоммитить.
- Перед коммитом можно выполнить множество разных операций — проанализировать код, проверить TODO и т.д.
Все это очень удобно, пользуйтесь, работайте эффективнее!