Перейти к основному содержимому

Git

Система контроля версий (version control system, VCS) — это ПО, предназначенное для отслеживания и управления изменениями в файлах или коде с течением времени. Она должна обеспечивать хранение истории изменений, их отслеживание (кто и когда сделал) и давать возможность возврата назад.

Самой популярной системой контроля версий в мире является Git. Эта система изначально была разработана для разработки ядра Linux, первая версия появилась в 2005 году.

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

git init — инициализация нового репозитория
git clone — создание локальной копии удалённого репозитория
git config — управление конфигом (текущий репозиторий или глобально)
git log — просмотр истории коммитов
git status — получение текущего состояния репозитория
git add — добавление изменений в индекс
git commit — фиксация изменений
git tag — управление тегами (указатели на определённые коммиты)
git push — отправка изменений на удалённый репозиторий
git pull — получение актуального состояния удалённого репозитория
git diff — сравнение изменений в файлах
git branch — управление ветками
git checkout — переход между ветками
git merge — объединение веток
git reset — сброс указателя текущей ветки (HEAD) в указанное состояние

Dot files

.gitignore — список неотслеживаемых файлов и каталогов
.gitattributes — атрибуты для файлов и каталогов

Best Practices

  • Мелкие коммиты лучше больших: когда коммит содержит логически связанные изменения для одной конкретной задачи, это делает историю изменений более понятной и упрощает отладку.

  • Синхронизация — основа командной работы: чем чаще забираются обновления с удалённого репозитория, тем меньше вероятность возникновения конфликтов в коде.

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

  • Основная ветка (main/master) всегда содержит рабочий код. Новые функции сначала тестируются в своей ветке. Перед слиянием проводится code review.