📚 Версионный контроль (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 flow
Update dependencies
Add 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