SmartQuery /ВОПРОС → ПРИМЕР → ПОНЯТНЫЙ ОТВЕТ
Системы и инструменты

Bitbucket: обновить fork из upstream

Fork хранится в отдельном репозитории. Обычно origin указывает на ваш fork, а upstream — на исходный проект. Обновление fork не требует force push, если вы обычным merge добавляете изменения исходного проекта.

Проверка remotes и ветки

git status
git remote -v
git remote add upstream ORIGINAL_REPOSITORY_URL
git fetch upstream
git branch -r

Добавляйте upstream только если его ещё нет. URL возьмите на странице исходного проекта. Название основной ветки выясните в проекте: это может быть main, master или другое имя. Не подставляйте master только потому, что он был в старой статье.

Пример для main

git switch main
git merge upstream/main
# После разрешения конфликтов и проверки проекта:
git push origin main

Если ваша локальная ветка ещё не содержит изменения fork, сначала выясните расхождение с origin/main. Не начинайте слияние поверх несохранённых рабочих файлов.

Конфликты

Проверьте git status, отредактируйте конфликтующие участки и запустите проверки проекта. После выбора окончательного содержимого добавьте исправленные файлы и завершите merge. Если нужно отказаться от начатого слияния, используйте git merge --abort, понимая, какие изменения относятся к этой операции.

После push сравните fork с исходным проектом. Обновление fork и отправка собственных изменений в upstream — разные задачи; второе обычно требует отдельного pull request. Не заменяйте merge бездумным reset --hard, который может потерять ваши изменения.

Документация