Git — это система контроля версий. Если совсем коротко, она позволяет сохранять состояние проекта на разных этапах, возвращаться к старым версиям и вести разработку в нескольких параллельных ветках. Для студента Git — не прихоть преподавателя, а инструмент, который спасает от удалённых файлов и сломанного кода в ночь перед сдачей.
1. Зачем нужен Git студенту
Представьте типичную ситуацию: вы пишете курсовую, за два дня до сдачи решаете "переписать покрасивее", и ничего не работает. Без Git вы потеряли рабочую версию. С Git — делаете откат на предыдущий коммит и продолжаете с рабочего места.
- Бэкап истории проекта автоматический — после каждого коммита есть откат.
- Удобно работать в команде: никто не присылает "итоговый_финал_версия_7.py".
- Работодатели смотрят на GitHub при найме. Чем раньше появится активный профиль, тем лучше.
- Преподаватели всё чаще требуют сдавать не архив, а ссылку на репозиторий.
2. Базовые команды
Освоить нужно пять-шесть команд, которые покрывают 90 % повседневной работы. Сначала настройте свою подпись:
git config --global user.name "Ivan Student"
git config --global user.email "ivan@example.com"
Создаём локальный репозиторий и делаем первый коммит:
git init # инициализация репозитория
git status # что изменилось
git add main.py # добавить файл в staging
git add . # добавить все изменения
git commit -m "Первый коммит: базовая структура"
git log --oneline # история коммитов
Работа с удалённым репозиторием на GitHub:
git remote add origin https://github.com/user/repo.git
git push -u origin main # отправить на сервер
git pull # забрать изменения с сервера
git clone https://github.com/user/repo.git # склонировать чужой
Если сделали глупость в последнем коммите и ничего ещё не пушили:
git commit --amend -m "Исправленное сообщение"
git reset HEAD~1 # отменить последний коммит, сохранив изменения
3. Работа с ветками
Ветки (branches) — главная фишка Git. Создаёте отдельную ветку для новой фичи или эксперимента, и если что-то пойдёт не так, просто выбрасываете её. Основная ветка (обычно main или master) остаётся стабильной.
git branch # список веток
git branch feature-login # создать ветку
git checkout feature-login # переключиться
git checkout -b feature-signup # создать и сразу перейти
# Работаем, коммитим...
git add .
git commit -m "Форма регистрации"
# Возвращаемся в main и мерджим
git checkout main
git merge feature-signup
git branch -d feature-signup # удалить слитую ветку
Правило хорошего тона: одна задача — одна ветка. Назовите её понятно: fix-database-bug, add-tests, refactor-parser.
4. Конфликты слияния
Конфликт случается, когда Git не может сам решить, какие изменения взять. Обычно это одновременные правки одного и того же куска файла в разных ветках. Выглядит так:
<<<<<<< HEAD
print("Привет от main")
=======
print("Привет от feature-login")
>>>>>>> feature-login
Что делать:
- Открываете файл, видите маркеры
<<<и>>>. - Решаете вручную, какие строки оставить (часто нужны обе, но в правильном порядке).
- Удаляете все маркеры-разделители.
- Делаете
git add файлиgit commit.
VS Code показывает конфликты красиво: с кнопками "Accept Current", "Accept Incoming", "Accept Both". Для новичка это проще, чем править руками в Notepad.
5. GitHub для учёбы
GitHub — самый популярный хостинг для Git-репозиториев. Для студента полезен тремя вещами:
- GitHub Student Pack. По студенческой почте даётся бесплатный доступ к Copilot, JetBrains IDE, домен .me на год и куча других вещей. Подайте заявку на education.github.com.
- Публичные репозитории. Выкладывайте лабораторные, курсовые, пет-проекты. Через год активности у вас уже не пустой профиль.
- Issues и Pull Requests. Учитесь вести разработку как в реальной команде: ставить задачи, ревьюить чужой код, обсуждать изменения.
Для учебных работ часто используют приватные репозитории, чтобы однокурсники не списали. Но после защиты имеет смысл сделать репозиторий публичным и добавить хороший README — это уже элемент вашего портфолио. О том, как правильно оформить учебный проект на GitHub, читайте в отдельной статье: как представить проект на GitHub.
И последний совет: не бойтесь сломать. Git устроен так, что почти любое действие можно откатить. Если что-то непонятно — команда git reflog покажет вообще всё, что вы делали, даже удалённые коммиты.