Git
У всех сред разработки Jetbrains есть встроенный инструмент, упрощающий работу с репозиториями.
Этот инструмент устроен одинаково, поэтому работа с ним рассмотрена на примере
Intellij IDEA
.
Чтобы получить доступ к работе с гитхабом, вам нужно предоставить доступ idea. Для этого создадим простой проект Java и запустим программу.
Публикация проекта
Чтобы опубликовать проект на гитхабе, выберите в меню Git->GitHub->Share Project on GitHub
Если вы впервые подключаетесь к гитхабу через Idea, то вам нужно предоставить доступ. Жмём Add account
.
Перед продолжением убедитесь, что вы вошли в свой гитхаб аккаунт в браузере. В появившемся меню выбираем Log in via GitHub
.
Откроется окно подтверждения.
Получаем сообщение, что аккаунт успешно связан с Idea
Теперь окно публикации репозитория будет выглядеть так
Если вы уже вошли, то окно будет выглядеть так
В любом случае вам нужно указать название создаваемого репозитория в верхнем поле ввода.
В следующем окне нам предлагается выбрать файлы, который мы добавим в индекс, это - аналог команды git add
Почти все файлы проекта - служебные и нам в репозитории не нужны. Поэтому не добавляем их в индекс.
В текстовом поле указывает описание создаваемого коммита.
Нужно добавить файл исходника и файл .gitignore
. В нём хранятся инструкции для git
, какие
файлы не нужно включать в индекс. Подробнее о ней будет рассказано в геометрических проектах соответственного языка.
Нажмите Add
.
Среда спросит у вас, хотите ли вы добавить файл .gitignore
в git. Снова нажмите Add
.
В правом нижнем углу отображается прогресс выполняемых действий.
Дождёмся, пока idea загрузит коммит на сервер. Кликните по ссылке, выделенной красной линией. Тест у вас может отличаться.
Всё готово, репозиторий опубликован
Отправка изменений
Если вы раскроете дерево проекта, то увидите, что названия файлов окрашены в разные цвета:
Часть папок и файлов являются служебными, они связаны с конкретным ПК и не должны индексироваться.
У git
есть команда сделать все изменённые файлы индексированными. Но перед тем, как добавить,
система контроля версий сверяется с файлом .gitignore
. И только если файл не подходит ни под
один из шаблонов, он добавляется в список индексации.
Каждая строка .gitignore
- это шаблон. В нашем случае первая строка говорит, что не нужно
индексировать ничего из папки .idea
, вторая - что нужно пропустить все файлы с расширением .iml
.
В своей сути эти шаблоны - регулярные выражения, а в регулярных выражениях *
означает любое количество
любых символов. Это обозначение пришло из теории формальных языков, обозначалось
множество всех последовательностей символов, те слов, составленных из букв алфавита .
Уже из этого в теории конечных автоматов начали строить автомат, который может обработать любые слова, потом уже из этих автоматов вывели регулярные выражения, но именно как математические объекты. Подробнее о регулярных выражениях в прикладном смысле можно прочитать здесь.
Кстати, сама команда git add *
на самом деле принимает регулярное выражение. Она добавляет в список
индексации все файлы, удовлетворяющие ему.
Поэтому звёздочка здесь означает то же самое, что и в .gitignore
: любые файлы подойдут.
Красным цветом обозначаются созданные, но не добавлены в индекс файлы, оранжевым - игнорируемые.
У нас в проекте уже есть такие файлы. Это связано с тем, что idea
не только сама создаёт файл со
списком того, что не нужно добавлять в индекс, но и сама заполняет его
Можно вручную заполнять .gitignore
, но проще использовать встроенный инструмент.
Чтобы добавить тот или иной элемент, нажмите по нему правой кнопкой мыши по нему и выберите
Git
->Add to .gitignore
->.gitignore
.
Добавим в список игнорирования все служебные файлы. Добавлять можно и отдельные файлы, и целые папки.
Теперь всё, кроме исходников и файла gitignore
, окрашено в оранжевый (в clion
нужно не
добавлять в список индексации ещё и CMakeLists.txt
).
Список игнорирования .gitignore
при этом изменился (в clion
он будет другим)
При этом сам файл окрасился в синий цвет. Так idea
показывает, что файл отличается от
той версии, которая сохранена в последнем коммите.
Если вы работаете в clion
, вам необходимо вручную добавить папку /.idea/
в файл .gitignore
Запускаем создание нового коммита. Это можно сделать через меню Git->Commit
. Либо можете нажать сочетание клавиш
Ctrl+K
В верхнем левом блоке указывается, какие файлы добавить в коммит. У нас всего один изменённый
файл .gitignore
, он помечен галочкой.
Снизу слева указывается название коммита. Назовите его gitignore changed
.
Нажмите на треугольник рядом с Commit
:
В выпадающем меню нажмите Commit and Push
:
Дальше нажмите Push
Внизу будет отображён прогресс отправки данных на сервер
Когда отправка будет закончена, idea
выдаст соответствующее сообщение
Репозиторий будет выглядеть теперь так
Idea многие операции выполняет за нас, поэтому теперь вам достаточно один раз указать, за какими файлами следить, а idea сама будет предлагать добавить их в индекс перед каждым созданием нового коммита.
Если вы захотите в какой-то момент оправить на сервер все созданные вами коммиты, то можно не создавать новый, а просто
выбрать в меню команду Git
->Push
. Появится это же окно.
Readme
Добавим теперь в проект файл readme.md
. Для этого кликните правой кнопкой мыши по папке
проекта и в выпадающем меню выберите New..
->File
Название вводится в маленьком окне New File
по центру экрана. Введите название readme.md
и нажмите Enter
Idea
предложит вам добавить новый файл в список индексации. Нажмите Add
.
Теперь readme.md
станет зелёного цвета. Так idea
показывает, что файл добавлен в индекс, но не
имеет версии в последнем коммите.
Если вы нажмёте Cancel
, то файл не добавится в индекс и будет красного цвета.
Чтобы добавить его, кликните по нему правой кнопкой мыши в дереве проекта
и в выпадающем меню выберите Git
->Add
.
Заполните readme текстом:
## Тестовый репозиторий
Он создан для проверки работы `.gitignore`.
У Idea есть встроенный инструмент отображения файлов формата *.md
. В правом верхнем углу (выделено красным) расположен
элемент управления отображением. Если вы не видите этих значков, просто переместите курсор мыши в правый верхний
угол окна редактирования текста.
В режиме редактирования и предпросмотра справа появится прототип того, как будет выглядеть ваш
readme
файл на гитхабе:
Создайте новый коммит, нажав Ctrl+K
. В появившемся окне поменяйте название коммита на readme added
и нажмите Commit and Push
В следующем окне нажмите Push
Теперь репозиторий будет выглядеть так:
Добавим теперь README.md файл
Получение изменений*
Вам нужно просто прочитать его. Команды выполнять не требуется.
Если вам нужно получить новые изменения с сервера, то открываем меню Git->Pull
.
В открывшемся окне жмём Pull
. Если вам нужна не основная ветка, выберите её в соответствующем элементе управления
Первый пункт - сама команда, второй - удалённый репозиторий, откуда будет выполнена загрузка, третий - ветка, которая
будет загружена.
В правом нижнем углу отображается прогресс выполнения той или иной операции. Дожидаемся окончания загрузки, и теперь у нас самая актуальная версия проекта.
Копия проекта*
Вам нужно просто прочитать его. Команды выполнять не требуется.
Если мы хотим создать копию удалённого репозиотория (т.е. репозхитория на удалённом сервере),
то это тоже можно сделать через idea
. Для этого нужно в меню выбрать
File
->New...
->Project form Version Control
Теперь нам нужно перейти на вкладку GitHub
, выбрать нужный нам проект в списке
В появившемся окне выбираем папку где будет лежать папка проекта, а не саму папку проекта.
И уже вручную в нижнем поле нужно дописать название папки проекта
Жмём Clone
и дожидаемся, пока удалённый репозиторий будет скопирован.
В появившемся окне Idea предлагает нам выбрать, где открыть загруженный проект.
This window
- открыть проект в
текущем окне, New window
- в новом, Cancel
- отмена.
Поначалу проект не запускает, это происходит не просто так. Мы добавили в игнор-список все файлы настроек idea, и теперь при первоначальном копировании проекта, нам нужно настроить запуск нашего приложения.
В правом верзнем углу жмём по надписи Setup SDK
и в появившемся меню выбираем любую из установленных версий. У меня она всего
одна 17 java version '17
Теперь нам осталось настроить непосредственную сборку нашего проекта.
Для этого вам нужно открыть файл, который будет исполняемым. В нашем случае - это Main.java
. Теперь жмём в меню
Run->Run...
.
В появившемся меню выбираем нужный нам класс, а именно: Main
.
Получим:
Последующие запуски можно уже выполнять, как обычно, нажимая на зелёный треугольник.