Я использую промежуточный репозиторий Git для зеркалирования удаленного репозитория SVN, из которого люди могут клонировать и работать.В промежуточном репозитории его основная ветвь перебазируется каждую ночь из вышестоящего SVN, и мы работаем над функциональными ветками.Например:
remote:
master
local:
master
feature
Я могу успешно перенести свою функциональную ветвь обратно на пульт и в итоге получить то, что ожидаю:
remote:
master
feature
local:
master
feature
Затем я переустановил ветку для отслеживанияпульт:
remote:
master
feature
local:
master
feature -> origin/feature
и все хорошо.Отсюда я бы хотел переназначить ветку Feature на ветку master на удаленном компьютере, но я хотел бы сделать это с моей локальной машины.Я хотел бы иметь возможность:
git checkout master
git pull
git checkout feature
git rebase master
git push origin feature
Чтобы поддерживать ветку удаленной функции в актуальном состоянии с удаленным мастером.Однако этот метод заставляет Git жаловаться:
To <remote>
! [rejected] feature -> feature (non-fast-forward)
error: failed to push some refs to '<remote>'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
git pull
делает трюк, но вызывает коммит слияния, которого я хотел бы избежать.Я обеспокоен тем, что в сообщении говорится feature -> feature
, а не feature -> origin/feature
, но это может быть просто презентацией.
Я что-то упускаю или поступаю по этому поводу совершенно неправильно?Не важно избегать повторной обработки на удаленном сервере, но это значительно затрудняет устранение любых конфликтов слияния из этой базы.