Или как работать с git, не заходя на GitHub и не открывая консоль

Intellij IDEA предоставляет очень удобные функции для работы с git. Из этой статьи вы можете узнать о лучших практиках работы с git через IntelliJ IDEA и о том, почему вам следует забыть о работе с git через консоль.

Импортировать проект из VCS

Intellij IDEA предоставляет возможность клонировать проект из системы управления версиями без использования консоли, для этого вам просто нужно выбрать Файл - ›Новый проект -› Проект из системы управления версиями. Здесь вы должны указать URL-адрес проекта и каталог, в который он будет извлечен.

Если вы используете GitHub, вы можете войти в систему и получить репозиторий из своей учетной записи GitHub. Это действительно удобно, вам не нужно заходить в свою учетную запись, открывать определенный репозиторий, клонировать URL-адрес и так далее.

Настройка нового репозитория

Чтобы связать свой проект с git, нажмите Alt + `-› Включить интеграцию контроля версий - ›Git. После этого VCS - ›Импорт в систему контроля версий› Поделиться проектом на GitHub.
И вы увидите окно с возможностью указать имя репозитория, удаленный и добавить описание репозитория .

Затем, нажав кнопку Поделиться, вы сможете создать начальную фиксацию, в которой вы можете указать файлы, которые будут добавлены в исходную фиксацию и сообщение о фиксации.

Отличная работа! Вы создали репозиторий GitHub, не посещая GitHub. К сожалению, в настоящее время эта функция не работает с другими веб-сайтами, такими как BitBucket или GitLab.

Если вы не используете GitHub, вам нужно вручную создать репозиторий на веб-сайте вашей VCS, а затем перейти в VCS - ›Git -› Remotes.

Нажмите «Добавить» и укажите имя удаленного URL-адреса и URL-адреса репозитория.

Кроме того, здесь вы можете создать несколько пультов дистанционного управления, если вы хотите разместить свой проект в нескольких репозиториях одновременно.

Добавить изменения VCS

Чтобы добавить изменения в VCS, используйте Ctrl + Alt + A, или вы также можете добавить неотслеживаемые файлы во время создания коммита, что удобнее, чем добавление вручную, выбирая все файлы.

Создать коммит

Windows: Ctrl + K
Mac: ⌘ + K

IntelliJ IDEA предоставляет подходящие функции для создания коммитов:

В этом окне вы можете:

  • Добавить файлы в коммит
  • Посмотреть изменения, которые внесет коммит
  • Установите сообщение фиксации, также поле ввода действительно удобно, оно рекомендует вам имена файлов во время набора, что очень полезно, когда вы должны добавить длинное имя файла.

  • Настройте, что IntelliJ IDEA должна делать с вашим кодом до или после фиксации, например, оптимизировать импорт или переформатировать код.

  • Автор: если вы фиксируете изменения, внесенные другим человеком, вы можете указать имя автора этих изменений.
  • Изменить фиксацию: позволяет добавлять изменения в последнюю фиксацию.
  • Подтверждение подтверждения: выберите, хотите ли вы подписать свое обязательство, чтобы подтвердить, что изменения, которые вы собираетесь зарегистрировать, были внесены вами или что вы принимаете на себя ответственность за код, который вы совершение.
  • Перед фиксацией: здесь вы можете указать действия, которые должна выполнить IDEA перед фиксацией выбранных файлов.
  • После фиксации: здесь вы можете указать конфигурацию доступа к серверу или группу серверов, которые будут использоваться для загрузки зафиксированных файлов на локальный или удаленный хост, на смонтированный диск или в каталог. .

Толкать

Windows: Ctrl + Shift + K
Mac: ⌘ + ⇧ + K

IntelliJ IDEA позволяет загружать изменения из любой ветки в отслеживаемую ветку или в любую другую удаленную ветку:

Создать запрос на вытягивание

VCS - ›Git -› Создать запрос на включение

IntelliJ IDEA предоставляет возможность создавать запросы на вытягивание в репозитории GitHub, не посещая его. В следующем окне вы можете указать базовую ветку, заголовок и описание запроса на вытягивание.

Эта функция очень удобна, позволяет создавать запросы на вытягивание без левой IDE, но, к сожалению, работает только с GitHub.

Получить изменения

VCS - ›Git -› Fetch

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

Полученные изменения хранятся в виде удаленной ветви, что позволяет вам просматривать их перед объединением с вашими файлами. Поскольку fetch не влияет на вашу локальную среду разработки, это безопасный способ получить все изменения из удаленного репозитория.

Обновить проект

VCS - ›Обновить проект
Windows: Ctrl + T
Mac:
⌘ + T

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

Во время обновления проекта IntelliJ IDEA извлекает изменения из всех корней и ветвей проекта и объединяет удаленные ветки в вашу локальную рабочую копию. Если у вас есть несколько модулей в IDE проекта, обновите все ваши модули.

Во время обновления IDE может предложить выбрать стратегию слияния, подробнее о них вы можете узнать из официальной документации git.

Конфликты слияния

Если во время слияния возник какой-либо конфликт слияния, IntelliJ IDEA покажет вам окно, в котором вы можете их разрешить:

Здесь вы можете выбрать 2 варианта: Принять ваши или Принять их, и IDE автоматически перезапишет изменения в соответствии с ними. Кроме того, вы можете дважды щелкнуть файл, в котором возник конфликт, и разрешить конфликт вручную:

Просмотреть историю проекта

Windows: Alt + 9
Mac: ⌘ + 9

В окне журнала вы можете увидеть историю коммитов, авторов, изменений, слияний ветвей и т. Д.:

Кроме того, в окне журнала вы можете щелкнуть правой кнопкой мыши конкретную фиксацию, чтобы:

  • Отменить нажатую фиксацию
  • Сбросить ветку до определенного коммита
  • Изменить сообщение фиксации
  • Создать новый тег
  • И т.п.

Git annotate (автор кода)

IntelliJ IDEA позволяет вам видеть, кто и когда пишет определенную строку кода. Чтобы увидеть эту информацию, вы должны щелкнуть правой кнопкой мыши по желобу в редакторе и выбрать Аннотировать в контекстном меню:

Управление филиалами

Чтобы проверить другую ветку, объединить изменения, переименовать ветку, используйте следующее всплывающее окно:

Полка

VCS - ›Изменения на полках

Полка - это временное хранилище ожидающих изменений, которые вы еще не зафиксировали.

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

Незаполненные изменения

Подтвердить - › Полка -› Выберите полку, которую нужно снять с полки - › Ctrl + Alt + U

Без хранения - перенос изменений с полки в список ожидающих изменений. Изменения без полки можно отфильтровать из поля зрения или удалить с полки.

Изменения в тайнике

VCS - ›Git -› Изменения в тайнике

Иногда может потребоваться вернуть вашу рабочую копию, но вы не хотите потерять изменения, которые вы уже сделали. Это может произойти, если вы узнаете, что есть изменения в основной ветке разработки, которые могут иметь отношение к тому, что вы делаете, или если вам нужно внести какие-то срочные исправления.

Прикрепление включает запись разницы между фиксацией HEAD и текущим состоянием рабочего каталога (тайника). Изменения в индексе также могут быть сохранены.

Применить тайник

VCS - ›Git -› Unstash Changes.

Распаковка включает применение сохраненного тайника к ветке. Вы можете применить stash к существующей ветке или unstash изменения к новой ветке.

stash можно применять сколько угодно раз к любой нужной ветке, просто переключитесь на определенную ветку. Помните, что:

  • Применение тайника после серии коммитов приводит к конфликтам, которые необходимо разрешить.
  • Вы не можете применить тайник к «грязной» рабочей копии, которая является рабочей копией с незафиксированными изменениями.

Чтобы удалить тайник, выберите его в списке и нажмите Удалить. Чтобы удалить все тайники, нажмите Очистить.

Разница между тайником и полкой

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

IntelliJ IDEA делает работу с git более простой и удобной, что позволяет повысить производительность и скорость разработки. Некоторые функции, к сожалению, работают только с GitHub, но, несмотря на это, IDE предоставляет возможности избежать типичных ошибок с нежелательными изменениями, полностью упростить разрешение конфликтов слияния, сделать работу с несколькими ветвями более гибкой и полностью забыть о консоли.