Фаза 00 · урок 02
Git и совместная работа
Цель урока: Вам предстоит написать сотни файлов с кодом в 20 фазах. Без контроля версий вы будете терять работу, ломать то, что невозможно отменить, и не сможете сотрудничать с другими людьми.
Текущий релиз AlexBred.com: первые 100 уроков русскоязычной программы.
Содержание урока
Контроль версий — не дополнительная возможность. Здесь будут отслеживаться каждый эксперимент, каждая модель и каждый созданный вами урок.
Тип: Теория Языки: — Предварительные требования: Фаза 0, урок 01 Время: около 30 минут
Цели обучения
- Настроить идентификационные данные Git и освоить повседневный цикл
add,commitиpush. - Создавать и сливать ветки для изолированных экспериментов, не нарушая работу
main. - Написать
.gitignore, исключающий контрольные точки моделей и большие двоичные файлы. - Просматривать историю коммитов с помощью
git log, чтобы понимать развитие проекта.
Проблема
Вам предстоит написать сотни файлов с кодом в 20 фазах. Без контроля версий вы будете терять работу, ломать то, что невозможно отменить, и не сможете сотрудничать с другими людьми.
Инструмент для этого — Git. GitHub — место, где хранится код. В этом уроке рассматривается только то, что понадобится для курса, и ничего лишнего.
Концепция
Запомните три правила:
- Часто сохраняйте изменения (
git commit). - Отправляйте их в удалённый репозиторий (
git push). - Создавайте ветки для экспериментов (
git checkout -b experiment).
Собираем сами
Шаг 1. Настройте Git
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
Шаг 2. Повседневный рабочий цикл
git status
git add file.py
git commit -m "Add perceptron implementation"
git push origin main
Шаг 3. Ветки для экспериментов
git checkout -b experiment/new-optimizer
# ... make changes, commit ...
git checkout main
git merge experiment/new-optimizer
Шаг 4. Работа с репозиторием этого курса
git clone https://github.com/rohitg00/ai-engineering-from-scratch.git
cd ai-engineering-from-scratch
git checkout -b my-progress
# work through lessons, commit your code
git push origin my-progress
Используем готовое
Для этого курса вам понадобятся только следующие команды:
| Команда | Когда использовать |
|---|---|
git clone |
Получить репозиторий курса |
git add + git commit |
Сохранить свою работу |
git push |
Создать резервную копию на GitHub |
git checkout -b |
Попробовать что-либо, не рискуя сломать main |
git log --oneline |
Посмотреть, что вы сделали |
Вот и всё. Для этого курса вам не нужны rebase, cherry-pick или подмодули.
Упражнения
- Клонируйте этот репозиторий, создайте ветку
my-progress, добавьте файл, зафиксируйте его коммитом и отправьте на сервер. - Создайте
.gitignore, исключающий файлы контрольных точек моделей (.pt,.pth,.safetensors). - Просмотрите историю коммитов репозитория командой
git log --onelineи изучите, как добавлялись уроки.
Ключевые термины
| Термин | Как обычно говорят | Что это означает на самом деле |
|---|---|---|
| Коммит (commit) | «Сохранение» | Снимок всего проекта в определённый момент времени |
| Ветка (branch) | «Копия» | Указатель на коммит, который перемещается вперёд по мере вашей работы |
| Слияние (merge) | «Объединение кода» | Перенос изменений из одной ветки в другую |
| Удалённый репозиторий (remote) | «Облако» | Копия репозитория, размещённая в другом месте, например на GitHub или GitLab |
Источник: Git & Collaboration — оригинал Навигация: назад: 00.01 — Среда разработки · Фаза 0 — Настройка и инструменты · Полный каталог · далее: 00.03 — Настройка GPU и облачные вычисления.