Git - это распределённая система контроля версий, которая позволяет отслеживать изменения в файлах, сотрудничать с другими разработчиками и управлять историей проекта.
Repository (репозиторий) - это хранилище вашего проекта вместе с историей изменений.
# Создание нового репозитория
git init
# Клонирование существующего репозитория
git clone <url>Commit (коммит) - это снимок состояния проекта в определенный момент времени.
# Создание коммита
git commit -m "Сообщение коммита"
# Просмотр истории коммитов
git log# Добавление файла в индекс
git add <файл>
# Добавление всех измененных файлов
git add .# Проверка статуса репозитория
git statusAmend позволяет изменить последний коммит, добавив новые изменения или изменив сообщение.
# Изменение сообщения последнего коммита
git commit --amend -m "Новое сообщение"
# Добавление изменений в последний коммит
git add <файл>
git commit --amend --no-editХеш — это уникальный идентификатор коммита в Git. Представляет собой строку из символов (обычно 40 шестнадцатеричных знаков).Однозначно определяет коммит. Если изменить содержимое коммита — изменится и его хеш.
Хеш используется для:
- перехода к коммиту
- сравнения версий
- просмотра истории
# Просмотр истории коммитов репозитория
git log
# Вызов сокращённого лога
git log --onelineФайл HEAD — один из служебных файлов папки .git. Он указывает на коммит, который сделан последним (то есть на самый новый). При работе с Git указатель HEAD используется довольно часто. Если нужно передать последний коммит, то вместо его хеша можно просто написать слово HEAD.
# Просмотр состояния (статус) файлов
git statusОсновные статусы файлов:
- untracked — файл не отслеживается Git
- tracked — файл отслеживается
- modified — файл изменён
- staged — изменения добавлены в индекс и готовы к коммиту
%% Жизненный цикл файлов в Git
graph LR;
untracked -- "git add" --> staged;
staged -- "git commit" --> tracked;
tracked -- "изменение файла" --> modified;
modified -- "git add" --> staged;