📝 BLOG

Git и контроль версий: основные команды и рабочие процессы

Git — основной инструмент современной разработки программного обеспечения. Это руководство охватывает основные команды Git, стратегии ветвления и рабочие процессы.

Обновлено:

Подготовлено: Gsetsoft

Git и контроль версий: основные команды и рабочие процессы

Что такое Git и зачем его использовать?

Git — это распределённая система контроля версий. Отслеживает изменения кода, управляет различными версиями и облегчает командную работу.

Распределённая структура: каждый разработчик имеет полную копию репозитория. Это позволяет работать офлайн и выполнять быстрые операции.

Ветвление: создавайте отдельные ветки для разных функций или исправлений. Это сохраняет основной код (main/master) всегда стабильным.

Слияние и rebase: объединяйте ветки в основную ветку. Merge сохраняет историю коммитов. Rebase создаёт линейную историю.

Основные команды Git

git init: создать новый репозиторий. git clone <url>: скопировать существующий репозиторий.

git add <file>: добавить изменения в область staging. git add .: добавить все изменения.

git commit -m "сообщение": закоммитить изменения в staging. Пишите содержательные сообщения коммитов.

git status: проверить статус репозитория. git log: просмотреть историю коммитов.

git diff: увидеть различия между рабочей директорией и областью staging. git diff --staged: увидеть различия между областью staging и последним коммитом.

Ветвление и слияние

git branch <name>: создать новую ветку. git checkout <name> или git switch <name>: переключиться на ветку.

git merge <branch>: объединить ветку в текущую ветку. Использует fast-forward merge или three-way merge.

Конфликт слияния: требуется ручное разрешение для конфликтующих изменений. Отредактируйте конфликтующие файлы, отметьте с помощью git add, завершите с помощью git commit.

git branch -d <name>: удалить ветку. git branch -D <name>: принудительно удалить неслитую ветку.

Операции с удалённым репозиторием

git remote add origin <url>: добавить удалённый репозиторий. git remote -v: вывести список remotes.

git push origin <branch>: отправить локальные изменения на remote. git push -u origin main: установить upstream ветку.

git pull: получить и объединить удалённые изменения. git fetch: получить удалённые изменения (без слияния).

git push --force: принудительно обновить удалённую ветку (используйте осторожно). git push --force-with-lease: более безопасный force push.

Стратегии ветвления

Git Flow: main (production), develop (development), feature/* (новые функции), release/* (подготовка релиза), hotfix/* (срочные исправления).

GitHub Flow: ветка main + feature-ветки. Каждая feature-ветка объединяется в main через pull request. Просто и эффективно.

Trunk-Based Development: одна ветка main, короткоживущие feature-ветки (1-2 дня). В сочетании с непрерывной интеграцией (CI/CD).

Критерии выбора: Git Flow для крупных проектов, GitHub Flow для малых-средних проектов, Trunk-Based Development для команд с зрелым CI/CD.

Лучшие практики

Сообщения коммитов: используйте повелительное наклонение ('Add feature', а не 'Added feature'). Ограничьте первую строку 50 символами, детали — 72 символами.

Атомарные коммиты: каждый коммит должен содержать одно изменение. Разбивайте большие изменения на маленькие коммиты.

Именование веток: используйте описательные имена, такие как feature/user-authentication, bugfix/login-error, hotfix/security-patch.

.gitignore: игнорируйте ненужные файлы (node_modules, .env, build/). Используйте шаблоны gitignore от GitHub.

Pull request: используйте pull requests для code review. Каждое изменение должно быть проверено хотя бы одним человеком.

Связанные инструменты

Ваш выбор конфиденциальности

Необходимые cookie обеспечивают безопасность и сеансы. Базовые визиты учитываются; с вашего разрешения включается дополнительная аналитика. Политика cookie