Git и GitHub ·
‹ Предыдущий
⏱ 5 минут чтения Обновлено: 2026-09-22

Создание локального git-репозитория в IntelliJ IDEA

Локальный git-репозиторий — это служебная папка .git внутри вашего проекта, в которой git хранит историю изменений: снимки файлов, авторов и сообщения коммитов. Репозиторий создаётся командой git init и полностью работает на вашем компьютере, без интернета. GitHub нужен на следующем шаге — чтобы отправить эту историю в облако и поделиться проектом.

Скриншоты в этом уроке сделаны в актуальной версии IntelliJ IDEA. Если вы работаете в версии до 2020.1 или встретили в другой инструкции старые названия пунктов меню — ниже таблица соответствия:

Действие Старый путь (до 2020.1) Актуальный путь Горячие клавиши
Создать локальный репозиторий VCS → Import into Version Control → Create Git Repository VCS → Enable Version Control Integration… → Git
Окно с изменениями View → Tool Windows → Version Control Окно Commit (изменения) и окно Git (история) Alt+0 / Alt+9
Добавить файл под контроль версий Контекстное меню → Add to VCS Контекстное меню → Git → Add Ctrl+Alt+A
Сделать коммит VCS → Commit Changes Git → Commit… Ctrl+K
Опубликовать проект на GitHub VCS → Import into Version Control → Share Project on GitHub Git → GitHub → Share Project on GitHub
Отправить коммиты (push) VCS → Git → Push Git → Push… Ctrl+Shift+K
Забрать изменения (pull) VCS → Git → Pull Git → Pull…

Шаг 1. Создание локального репозитория

Открываем свой проект в IntelliJ IDEA. Для инициализации локального git-репозитория в верхнем меню выбираем VCS → Enable Version Control Integration… (в версиях до 2020.1 этот пункт назывался VCS → Import into Version Control → Create Git Repository).

Создание локального git-репозитория через меню VCS в IntelliJ IDEA

и далее Git в выпадающем списке:

Enable version control integration

После нажатия на кнопку 'Ok', внизу рядом с иконкой Git появиться надпись "Created Git repository in <ПУТЬ К КАТАЛОГУ ПРОЕКТА>":

Created git repository

После создания репозитория появятся два окна — Commit и Git. Если они не появились, откройте их через View → Tool Windows → Commit (Alt+0) и View → Tool Windows → Git (Alt+9). В версиях до 2020.1 это было одно окно Version Control.

Шаг 2. Добавление файлов под контроль версий

Создание репозитория само по себе ничего не отслеживает: git пока не знает, за какими файлами следить. В окне Commit нас интересует вкладка Changes. В списке Unversioned Files находятся файлы, которые не отслеживаются git; IntelliJ IDEA выделяет их коричневым:

Вкладка Local Changes и список Unversioned Files в IntelliJ IDEA

Выбираем файлы, изменения в которых хотим отслеживать, вызываем контекстное меню и выбираем Git → Add (в версиях до 2020.1 этот пункт назывался Add to VCS):

Команда Git → Add в контекстном меню списка изменений

Обычно в репозиторий добавляют исходный код (например, .java, .xml) и файлы конфигурации сборки (pom.xml, build.gradle). Скомпилированные и временные файлы (.class, папки target, out, build) коммитить не нужно — их проще один раз перечислить в .gitignore.

Сделайте .gitignore до первого коммита

Файл .gitignore в корне проекта избавляет от ручного выбора файлов: git просто перестаёт предлагать всё лишнее. Минимальный набор для Java-проекта — target/, out/, build/, *.class, .idea/, *.iml. Если файл уже попал в репозиторий, добавление строки в .gitignore его оттуда не удалит: сначала нужно выполнить git rm --cached.

После добавления файл Main.java переместился в список Changes — здесь находятся отслеживаемые git файлы, которые попадут под контроль версий после коммита. Только что добавленные файлы IntelliJ IDEA выделяет зелёным:

Файл Main.java в списке Changes после добавления в git

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

Диалог IntelliJ IDEA с предложением добавить новый файл в git

Соглашаемся — нажимаем Yes.

Шаг 3. Коммит

Коммит сохраняет состояние проекта в репозиторий: git делает снимок (snapshot) всех файлов из Changes на текущий момент. В Changes выбираем файлы для коммита и заполняем поле Commit message — коротко описываем, какие изменения сделаны в этом коммите:

Вызов Commit

Если изменить файл, который уже был закоммичен, он снова попадёт в Changes, но подсветится синим: для git это уже не новый файл, а изменённый.

Чтобы просмотреть все коммиты, перейдите на вкладку Log. Там видно, кто и когда сделал коммит, какие файлы изменились и с каким сообщением:

Вкладка Log с историей коммитов в окне Git

Commit и Commit and Push — разные кнопки

Обычный Commit сохраняет снимок только в локальном репозитории: на GitHub изменений пока нет. Commit and Push сразу отправляет коммит в удалённый репозиторий. Это удобно, но помните: отправленный коммит уже видят другие, переписать историю безболезненно не получится.

Шаг 4. Публикация проекта на GitHub

Пока всё происходило на вашем компьютере. Чтобы выложить проект в сеть, в верхнем меню выбираем Git → GitHub → Share Project on GitHub (в версиях до 2020.1 — VCS → Import into Version Control → Share Project on GitHub):

Пункт меню Share Project on GitHub в IntelliJ IDEA

Откроется окно, где нужно указать имя репозитория и его видимость (публичный или приватный). После подтверждения IntelliJ IDEA создаст репозиторий на GitHub, привяжет его как origin и выполнит первый push. Ветка по умолчанию на GitHub с октября 2020 года называется main, а не master — это имя и будет в адресной строке репозитория.

Перед публикацией убедитесь, что аккаунт GitHub подключён к IDE: Подключение аккаунта GitHub к IntelliJ IDEA

Шаги 5 и 6. Операции push и pull

Push отправляет локальные коммиты в удалённый репозиторий на GitHub. Вызывается через Git → Push… (или Ctrl+Shift+K); в версиях до 2020.1 этот пункт назывался VCS → Git → Push. В окне видно список коммитов, которые уйдут на сервер:

Окно операции push со списком отправляемых коммитов

Pull делает обратное: забирает с GitHub коммиты, которых нет у вас локально. Нужен, когда вы работаете с двух компьютеров или в команде. Вызывается через Git → Pull… (в версиях до 2020.1 — VCS → Git → Pull):

Окно операции pull для получения изменений с GitHub

Если проект уже лежит на GitHub и его нужно наоборот скачать себе, посмотрите урок Клонирование проекта с GitHub в IntelliJ IDEA.

Те же шаги в терминале

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

git init                       # создать локальный репозиторий (.git)
git add Main.java              # добавить файл под контроль версий
git add .                      # или всё, что не попало в .gitignore
git commit -m "Initial commit" # сделать снимок состояния проекта
git remote add origin https://github.com/username/my-project.git
git branch -M main             # переименовать ветку в main
git push -u origin main        # первый push: связать локальную ветку с удалённой
git pull                       # забрать изменения с GitHub

Встроенный терминал IntelliJ IDEA открывается по Alt+F12 и работает в каталоге проекта, так что команды можно выполнять прямо оттуда.

На чём чаще всего спотыкаются

  • Коммитят папку .idea и *.iml. Это настройки вашей IDE, а не код проекта: у коллег они вызывают постоянные конфликты. Место таким файлам — в .gitignore.
  • Коммитят target, out, build и .class. Скомпилированные файлы получаются из исходников за секунды, но раздувают репозиторий и историю.
  • Считают, что коммит попал на GitHub. Коммит — локальная операция. Пока не выполнен push, изменения существуют только на вашем компьютере.
  • Пишут сообщения вида «fix», «123», «update». Через месяц по такому логу невозможно понять, что менялось; формулируйте, что сделано: «Add validation to User form».
  • Заливают в публичный репозиторий пароли и ключи. Токены, пароли от БД, application.properties с реальными данными — удалить их из истории потом гораздо сложнее, чем не коммитить сразу.

Часто задаваемые вопросы

В меню IntelliJ IDEA нет пункта Import into Version Control. Что делать?

Начиная с версии 2020.1 этот пункт убрали. Если проект ещё не под git, выберите VCS → Enable Version Control Integration… и укажите Git. Если репозиторий уже создан, меню VCS заменяется на меню Git, где лежат Commit, Push, Pull и подменю GitHub. Альтернатива — выполнить git init во встроенном терминале, IDE подхватит репозиторий автоматически.

Нужно ли добавлять в репозиторий папки .idea, target и out?

Нет. В git попадает то, из чего проект собирается: исходники, ресурсы, pom.xml или build.gradle. Папки .idea, target, out и файлы .class генерируются локально и должны быть перечислены в .gitignore. Исключение — отдельные файлы из .idea, если команда сознательно договорилась хранить общие настройки инспекций или стиля кода.

Почему GitHub не принимает пароль при push?

GitHub отключил вход по паролю для операций по HTTPS 13 августа 2021 года. Нужен персональный токен доступа (Personal Access Token) вместо пароля либо вход через браузер по OAuth: File, Settings, Version Control, GitHub, кнопка Log In with GitHub. Токен создаётся на GitHub в Settings, Developer settings, Personal access tokens и для приватных репозиториев требует область repo. Второй вариант — подключаться по SSH-ключу.

Push отклонён с ошибкой non-fast-forward. Как это исправить?

Это значит, что в удалённой ветке есть коммиты, которых нет у вас: кто-то запушил раньше или вы добавили файл через веб-интерфейс GitHub. Сначала выполните Git, Pull (IDE предложит merge или rebase), при необходимости разрешите конфликты, затем повторите push. Делать push с флагом force не стоит — так можно затереть чужие коммиты.

Видео объяснение

Предпочитаете видеоформат? Посмотрите этот урок с примерами и объяснениями.

Комментарии

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