Git для студентов: базовый гайд

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

Что делать:

  1. Открываете файл, видите маркеры <<< и >>>.
  2. Решаете вручную, какие строки оставить (часто нужны обе, но в правильном порядке).
  3. Удаляете все маркеры-разделители.
  4. Делаете 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 покажет вообще всё, что вы делали, даже удалённые коммиты.