Ответ
Git — это распределённая система контроля версий (VCS), которая отслеживает изменения в файлах проекта. Её работа основана на создании "снимков" (snapshots) состояния файлов.
Ключевые концепции:
- Репозиторий (
.git): Локальная база данных в корне проекта, хранящая всю историю изменений, коммиты и ветки. - Коммит (Commit): Снимок состояния файлов в определенный момент времени. Каждый коммит имеет уникальный SHA-1 хэш и содержит ссылку на родительский коммит, образуя историю.
- Ветка (Branch): Подвижный указатель на коммит. Позволяет вести параллельную разработку, не затрагивая основную кодовую базу (
mainилиmaster). - Три состояния файла:
- Рабочая директория (Working Directory): Файлы в их текущем виде.
- Индекс (Staging Area): Область для подготовки следующего коммита. Файлы добавляются сюда командой
git add. - Репозиторий (HEAD): Зафиксированные изменения, сохраненные в
.git.
Базовый рабочий процесс:
# 1. Клонировать удаленный репозиторий
git clone <repository_url>
# 2. Создать новую ветку для задачи и переключиться на нее
git checkout -b new-feature
# 3. Внести изменения в файлы...
# 4. Добавить измененные файлы в индекс (staging)
git add . # Добавить все файлы
# или git add <filename>
# 5. Зафиксировать изменения в коммите
git commit -m "feat: Add user authentication"
# 6. Отправить ветку на удаленный сервер
git push origin new-feature
# 7. После ревью, слить ветку в основную
git checkout main
git pull origin main # Обновить локальную main
git merge new-feature
Главное преимущество Git — его распределённая природа. У каждого разработчика есть полная копия истории репозитория, что повышает надежность и позволяет работать автономно.