Ответ
Git — распределенная система контроля версий. Основной workflow включает работу с локальным репозиторием, удаленным репозиторием (remote) и ветками (branches).
Базовые команды для ежедневной работы:
# Клонирование существующего репозитория
git clone <url-репозитория>
# Получение изменений с удаленного репозитория и слияние с текущей веткой
git pull origin main
# Добавление изменений в индекс (staging area)
git add <файл> # или git add . для всех
# Фиксация изменений с комментарием
git commit -m "Краткое и информативное описание изменений"
# Отправка закоммиченных изменений в удаленный репозиторий
git push origin <имя-ветки>
# Просмотр состояния файлов и истории коммитов
git status
git log --oneline
Работа с ветками (Feature Branch Workflow):
# Создание новой ветки для задачи/фичи и переход на неё
git checkout -b feature/new-authentication
# После внесения изменений и коммитов - отправка ветки на сервер
git push -u origin feature/new-authentication
# Флаг -u связывает локальную и удаленную ветку для будущих git push/pull
# После код-ревью и аппрува - слияние через Pull/Merge Request (UI GitHub/GitLab).
# Затем обновление локальной main ветки и удаление отработанной ветки
git checkout main
git pull origin main
git branch -d feature/new-authentication # удаление локальной ветки
Разрешение конфликтов слияния: Если git pull или git merge приводит к конфликту, Git помечает файлы. Необходимо вручную отредактировать их, оставив нужные изменения, затем:
git add <разрешенный-файл>
git commit # Git создаст коммит слияния
Перебазирование (Rebase): Альтернатива слиянию для поддержания линейной истории.
git checkout feature/my-branch
git rebase main # "перемещает" коммиты вашей ветки на вершину main
# После этого возможен fast-forward merge в main
Важно: Не используйте rebase на коммитах, которые уже были отправлены в общий репозиторий, чтобы не переписывать общую историю.