Перейти к основному содержимому

Теоретическое введение в git

Термины

Для понимания работы с git разберемся с терминами git.

Git или Гит — система контроля и управления версиями файлов.

Гитлаб (GitLab) — веб-сервис для размещения репозиториев и совместной разработки проектов.

Репозиторий Git — каталог файловой системы, в котором находятся: файлы конфигурации, файлы журналов операций, выполняемых над репозиторием, индекс расположения файлов и хранилище, содержащее сами контролируемые файлы.

В графическом представлении репозиторий будет выглядеть как на рисунке 1. Круги "A", "B", "C" представляют собой коммиты. В каждом коммите мы изменяем репозиторий. В первой коммите "A" (коммит инициализации или initial commi) был создан файл readme.md. В коммите "B" и "C" были добавлены еще файлы. Репозиторий git представляет собой систему контроля версий, хранящую данные об изменениях (коммиты) в репозитории.

Рисунок 1. Репозиторий git.

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

Удалённый репозиторий — репозиторий, находящийся на удалённом сервере. Это общий репозиторий, в который приходят все изменения и из которого забираются все обновления.

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

Рисунок 2. Локальные и удаленные репозитории.

Клонирование (Clone) — создание репозитория с удалённого сервера на локальный компьютер.

Рисунок 3. Форк.

Форк (Fork) — удаленный репозиторий, являющийся копией другого удаленного репозитория. При создании форка копируются все данные родительского репозитория, но права не наследуются, а остаются стандартными, как для обычного форка. В дальнейшем все файлы сохраняются в форке (удаленном репозитории) и локальных репозиториях. При работе с практическими заданиями через GitLab вы будете использовать систему форков.

Рисунок 3. Форк.

Ветка (Branch) — это параллельная версия репозитория. Она включена в этот репозиторий, но не влияет на главную версию, тем самым позволяя свободно работать в параллельной. Когда вы внесли нужные изменения, то вы можете объединить их с главной версией.

Рисунок 4. Ветки.

Коммит (Commit) — фиксация изменений в репозитории. Сам репозиторий представляет собой историю коммитов (подтвержденных изменений).

Рисунок 5. Репозиторий как история коммитов.

Пуш (Push) — отправка всех неотправленных коммитов на удалённый сервер репозитория.

Рисунок 1. Пуш.

Пулл (Pull) — получение последних изменений с удалённого сервера репозитория.

Рисунок 1. Пулл.

Основные команды в git

к сведению

В IDE (среде разработки) данные команды могут быть реализованы в виде UI (пользовательского интерфейса). Тем не менее, они все еще подчиняются правилам git и буквально реализовывают функционал git через UI. В большинстве IDE присутствует терминал, в котором можно работать с git в текстовом представлении (команды), однако некоторый функционал (git clone) будет в любом случае реализован через UI.

Работа с командами git в IDE без терминала подразумевает выполнение команд через UI. Принципы взаимодействия совпадают.

Настройка git

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

git config --global user.name “Имя Фамилия”
git config --global user.email ВашаПочта@edu.mirea.ru

Чтобы задать пользователя только для заданного репозитория, а не глобально, при использовании команды уберите флаг --global.

Чтобы просмотреть данные пользователя пропишите данные команды:

git config user.name
git config user.email

git clone

Клонирование репозитория в новый каталог (на локальное устройство). Копирует удаленный репозиторий и создает из данной копии локальный репозиторий.

Документация

git clone

Для выполнения команды необходимо указать URL - ссылку на репозиторий. Например:

git clone https://git-mirea.ru/IRI/courses/android-dev/1.git

git status

Показывает список изменений в локальном репозитории после последнего коммита.

Документация

git status

git add

Добавляет изменения локального репозитория в индекс для последующего коммита.

Документация

В основном при работе с add используют параметр --all - добавление всех файлов.

git add --all

git commit

Запись изменений в репозиторий

Документация

Чтобы сделать самый простой коммит необходимо указать для него сообщение при помощи параметра -m (message).

git commit -m "Сообщение коммита"

git push

Отправление изменений (коммитов) на удаленный репозиторий.

Документация

Указывается 2 параметра: удаленный репозиторий (origin) и ветка локального репозитория (в данном случае main).

git push origin main

git pull

Обновление локального репозитория данными (коммитами) из удаленного репозитория.

Документация

На самом простом уровне используется только команда без дополнительных параметров.

git pull

Вы разобрали команды в git, необходимые для взаимодействия с git на базовом уровне, работы со своим личными репозиториями (самостоятельной работы).