Ysa-k09-ru
Глава 9: Git – основы системы контроля версий
Цели главы
После изучения этой главы ученик:
- Понимает, зачем нужна система контроля версий
- Знает основные понятия Git (репозиторий, коммит, ветка)
- Умеет скачивать файлы из удалённого git-репозитория
- Умеет создавать локальный репозиторий
- Умеет добавлять файлы в индекс, выполнять коммиты
- Может просматривать и восстанавливать изменения
1. Что такое система контроля версий
Система контроля версий (VCS) — это инструмент, который:
- хранит историю изменений файлов
- позволяет вернуться к предыдущей версии
- упрощает совместную работу
- предотвращает потерю данных
Для системного администратора Git важен потому что:
- конфигурации серверов часто хранятся в Git
- скрипты администрирования версионируются
- Git используется практически везде
2. Что такое Git
Git — это распределённая система контроля версий.
Особенности Git:
- каждый репозиторий содержит полную историю
- работает быстро и надёжно
- не требует постоянного подключения к серверу
- широко используется (GitHub, GitLab, Bitbucket)
3. Установка Git
На Debian/Ubuntu:
sudo apt update sudo apt install git
Проверка:
git --version
4. Основные понятия Git
Репозиторий
Репозиторий — каталог, в котором Git отслеживает изменения файлов.
Коммит
Коммит — сохранённое состояние файлов в определённый момент времени.
Рабочая директория
Каталог с файлами, которые вы редактируете.
Индекс (staging area)
Промежуточная область между рабочей директорией и коммитом.
5. Скачивание файлов из git-репозитория
5.1 Клонирование репозитория
Чтобы скачать репозиторий:
git clone https://github.com/user/project.git
После этого:
- создаётся каталог project
- загружается вся история
Пример:
git clone https://github.com/git/git.git
5.2 Обновление локального репозитория
Если репозиторий уже существует:
git pull
6. Создание локального репозитория
6.1 Инициализация
mkdir myproject cd myproject git init
Создаётся скрытый каталог:
.git
6.2 Настройка пользователя
Обязательно перед первым коммитом:
git config --global user.name "Ivan Ivanov" git config --global user.email "ivan@example.com"
Проверка:
git config --list
7. Работа с файлами
7.1 Проверка состояния
git status
Показывает:
- изменённые файлы
- файлы, не добавленные в индекс
7.2 Добавление файлов в индекс
Добавить один файл:
git add file.txt
Добавить все файлы:
git add .
7.3 Создание коммита
git commit -m "Первый коммит"
Коммит:
- фиксирует текущее состояние
- имеет уникальный идентификатор
8. Просмотр истории
История коммитов
git log
Кратко:
git log --oneline
9. Восстановление файлов
9.1 Отмена изменений в файле
git checkout -- file.txt
Файл возвращается к состоянию последнего коммита.
9.2 Возврат к предыдущему коммиту
Просмотр истории:
git log --oneline
Переход:
git checkout <hash>
Возврат назад:
git checkout main
10. Практика: базовый рабочий процесс
Типичный цикл работы: 1. Изменить файл 2. git status 3. git add 4. git commit 5. git log
11. Практические задания
Задание 1
- Установить git
- Проверить версию
- Настроить имя и email
Задание 2
- Создать каталог project1
- Инициализировать git-репозиторий
- Создать файл README.txt
- Сделать первый коммит
Задание 3
- Изменить README.txt
- Посмотреть git status
- Добавить изменения
- Сделать второй коммит
Задание 4
- Посмотреть историю коммитов
- Вернуть README.txt к предыдущему состоянию
Задание 5 (практика администратора)
- Клонировать любой публичный репозиторий
- Изучить структуру каталогов
- Обновить репозиторий с помощью git pull
12. Типичные ошибки
Ошибка: "please tell me who you are"
Причина:
- не настроено имя или email
Решение:
git config --global user.name "Name" git config --global user.email "email"
13. Дополнительные материалы для самостоятельного изучения
- man git
- man git-clone
- man git-commit
- Официальная книга: Pro Git (бесплатно)
- Практика на GitHub или GitLab
14. Результат главы
После этой главы ученик:
- Понимает основы Git
- Умеет работать с локальными репозиториями
- Может скачивать и обновлять проекты
- Готов использовать Git в работе системного администратора