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.