Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Скачивание изменений с удаленного репозитория
Git предоставляет несколько команд для получения и интеграции изменений с удаленного репозитория. Это критически важные операции в командной разработке.
Основные команды
1. git fetch — скачивание изменений БЕЗ интеграции
git fetch
git fetch origin
git fetch origin main
git fetch --tags
Что происходит:
- Загружаются все новые коммиты, ветки и теги с сервера
- Обновляются локальные отслеживающие ветки: origin/main, origin/feature
- Ваша локальная работа НЕ изменяется — это безопасная операция
- История остается чистой без merge/rebase коммитов
2. git pull — скачивание И интеграция изменений
git pull
git pull origin main
git pull --rebase origin main
git pull --ff-only
Что происходит:
- git fetch загружает изменения с сервера
- git merge интегрирует их в текущую ветку
- Если есть конфликты, нужно их разрешить
3. git pull --rebase — скачивание с перепривязкой
git pull --rebase origin main
Вместо merge используется rebase — ваши локальные коммиты переиграют на вершину удаленной ветки. Такой подход создаёт более чистую историю.
Разница между fetch и pull
- fetch: скачивает изменения, но НЕ интегрирует их. Полностью безопасно.
- pull: скачивает И интегрирует (merge). Может быть риск конфликтов.
- pull --rebase: скачивает и переиграет вашу работу. Более чистая история.
Практические сценарии
Обновление перед push
git fetch origin
git log --oneline origin/main ^HEAD
git pull --rebase origin main
git push origin feature-branch
Работа в команде
git checkout -b feature/api
# Ваши коммиты
git fetch origin
git rebase origin/main
git pull --rebase origin main
git push origin feature/api
Проверить что на сервере
git fetch
git log --oneline origin/main -5
git diff HEAD origin/main
git merge origin/main
Работа с несколькими ветками
git fetch --all
git branch -r
git checkout --track origin/feature/api
git checkout -b local-feature origin/feature/api
Конфликты при pull
git pull origin main
git status
git add filename
git commit -m "Merge remote changes"
Настройка поведения pull
git config pull.rebase true
git config --global pull.rebase true
git config pull.ff only
Best Practices
- Используй fetch перед важными решениями — чтобы посмотреть актуальное состояние
- Sync часто — не давайте ветвям сильно расходиться
- Prefer rebase для своих веток — более чистая история
- Используй merge для интеграции в main — безопаснее
- Всегда pull перед push — избежите конфликтов
- Pull с --rebase во feature ветках — уменьшает лишние merge коммиты