Перейти к содержанию

Git и GitHub

Git — это система контроля версий. Без неё ни одна команда в мире не пишет код. В программе ты сдаёшь каждое задание через Pull Request — это тренировка реального рабочего цикла.

Что должен понять

  • Что такое репозиторий, коммит, ветка, удалённый репозиторий и PR.
  • Как сделать первый коммит и запушить ветку на GitHub / GitLab.
  • Почему «одна задача = одна ветка + один PR» — это стандарт работы.
  • Какую структуру папок держать в учебном репозитории.

Ключевые понятия

  • Repository (репо) — папка с проектом, где Git отслеживает историю.
  • Commit — снимок изменений с сообщением. Можно вернуться назад.
  • Branch (ветка) — параллельная линия разработки. main — основная, остальные — твои задачи.
  • Push — отправить локальные коммиты на сервер.
  • Pull Request (PR / MR) — предложение влить твою ветку в main. Здесь происходит ревью.

Минимальный workflow

# один раз на репозиторий
git init
git remote add origin git@github.com:USER/go-from-zero.git

# каждое задание
git checkout -b lesson-2-task-1     # новая ветка
# ... пишешь код в lesson_2/task1/main.go ...
git status                           # что изменилось
git add lesson_2/task1/main.go       # добавить в индекс
git commit -m "lesson 2 task 1: print hello"
git push origin lesson-2-task-1      # отправить ветку

После push GitHub / GitLab подскажет ссылку «Create Pull Request» — открой её и создай PR в ветку main. AI-ревью запустится автоматически.

Структура учебного репозитория

go-from-zero/
  go.mod
  README.md
  lesson_1/
    task1/main.go
  lesson_2/
    task1/main.go
    task2/main.go
  lesson_3/
    task1/main.go

Правило: один файл main.go на задачу, в своей папке. Не клади всё в одну кучу — ревью запутается.

Полезные команды

Команда Что делает
git status Показать изменения и текущую ветку
git diff Показать незакоммиченные изменения
git log --oneline -n 10 Последние 10 коммитов кратко
git checkout main Переключиться на main
git pull Забрать обновления с сервера
git branch -d lesson-2-... Удалить локальную ветку после мерджа

Типичные ошибки

  • Коммит прямо в main. Заведи отдельную ветку.
  • Один PR на 5 задач. Ревьюер не понимает, что смотреть. Дроби.
  • Коммит сообщения вида fix. Пиши lesson 3 task 2: switch by score.
  • Забывают git push и удивляются, почему PR пустой.

Критерии приёмки модуля

  • Создан репозиторий go-from-zero на GitHub или GitLab.
  • В нём есть хотя бы одна ветка lesson-N-task-M с PR'ом.
  • PR прошёл AI-ревью без замечаний по структуре.
  • Ты понимаешь, что делает каждая команда из таблицы выше.

Дальше: Базовый синтаксис Go.