📚 Версионный контроль (Git)
1. Что такое версионный контроль?
Версионный контроль — это система, которая позволяет отслеживать изменения в файлах проекта во времени. Это особенно важно при разработке программного обеспечения, так как позволяет:
- Откатывать изменения до предыдущих версий.
- Следить за тем, кто, когда и что изменил.
- Работать в команде без потери данных.
- Упрощает совместную работу над одним проектом.
💡 Почему именно Git?
Git — это распределённая система контроля версий, созданная Линусом Торвальдсом в 2005 году. Он бесплатен, мощный, поддерживает локальные и удалённые репозитории, гибкую систему веток и историю изменений.
2. Основные понятия Git
| Термин | Описание |
|---|---|
| Репозиторий (Repository) | Хранилище файлов проекта вместе с историей изменений. |
| Коммит (Commit) | Сохранённое изменение в истории проекта. Каждый коммит имеет уникальный хэш и сообщение описания. |
| Ветка (Branch) | Параллельная версия проекта. Позволяет работать над разными задачами независимо. |
| Master/Main | Основная стабильная ветка проекта. |
| Статус (Status) | Показывает текущее состояние рабочей директории и индекса. |
| Индекс (Staging area) | Область, где выбираются изменения для следующего коммита. |
| Пулл (Pull) | Получение изменений из удалённого репозитория. |
| Пуш (Push) | Отправка своих изменений в удалённый репозиторий. |
3. Установка Git
- Windows: https://git-scm.com/download/win
- macOS:
brew install git - Linux (Ubuntu/Debian):
sudo apt install git
После установки задайте имя и email:
git config --global user.name "YourName"
git config --global user.email "your@email.com"
4. Базовые команды Git
Инициализация и клонирование
# Создать новый репозиторий в текущей папке
git init
# Склонировать существующий репозиторий
git clone https://github.com/example/project.git
Работа с изменениями
# Проверить статус рабочей директории
git status
# Добавить все изменения к следующему коммиту
git add .
# Или добавить конкретный файл
git add filename.txt
# Зафиксировать изменения
git commit -m "Описание изменений"
# Посмотреть историю коммитов
git log
Работа с ветками
# Посмотреть список веток
git branch
# Создать новую ветку
git branch feature-name
# Переключиться на ветку
git checkout feature-name
# Создать и переключиться одной командой
git checkout -b feature-name
# Объединить ветку с текущей
git merge feature-name
Работа с удалённым репозиторием
# Посмотреть подключённые удалённые репозитории
git remote -v
# Добавить удалённый репозиторий
git remote add origin https://github.com/username/repo.git
# Загрузить изменения с сервера
git pull origin main
# Отправить изменения на сервер
git push origin main
5. Рекомендации по работе с Git
✅ Названия коммитов
Соблюдайте стиль написания коммитов:
- Используйте глагол в повелительном наклонении: "Add", "Fix", "Update", "Remove"
- Примеры хороших коммитов:
Fix bug in login flowUpdate dependenciesAdd validation to form fields
🧵 Работа с ветками
Рекомендуется использовать следующую стратегию:
main/master— стабильная версия.develop— основная ветка разработки.feature/...— ветки для новых функций.bugfix/...— ветки для исправления багов.hotfix/...— срочные исправления для production.
🔄 Регулярно обновляйте репозиторий
Перед началом работы всегда выполняйте:
git pull origin develop
Чтобы быть уверенным, что вы работаете с актуальной версией кода.
6. Полезные инструменты и сервисы
| Сервис | Описание |
|---|---|
| GitHub | Самый популярный хостинг репозиториев. Поддерживает CI/CD, Issues, Pull Requests и т.д. |
| GitLab | Альтернатива GitHub с аналогичным функционалом. Подходит для частных проектов и корпоративного использования. |
| Bitbucket | Хорош для малых и средних команд, интегрируется с Jira. |
| VSCode + Git | Встроенный интерфейс Git в Visual Studio Code удобен для новичков. |
| Sourcetree | Графический клиент для работы с Git. Бесплатный, от Atlassian. |
7. Частые проблемы и решения
| Проблема | Решение |
|---|---|
| Я случайно закоммитил не тот файл | git reset HEAD filename |
| Нужно отменить последний коммит | git reset --soft HEAD~1 |
| Изменения сломали код — хочу откатиться | git checkout <commit-hash> |
| Конфликты при слиянии | Разрешаются вручную через редактор. После правки выполните git add, затем git commit. |
8. Полезные ссылки
- Официальная документация Git
- Learn Git Branching (визуальный учебник)
- GitKraken Git GUI
- Git Cheatsheet от GitHub
9. FAQ
❓ Что делать, если я не знаю, какие файлы изменились?
git diff
❓ Как посмотреть изменения определённого файла?
git diff filename.txt
❓ Как удалить ветку?
git branch -d branch-name
❓ Как увидеть, кто изменил строку в файле?
git blame filename.txt