Как устранить ошибку git: "обновления были отклонены, потому что верхушка вашей текущей ветви находится позади"
Я недавно начал использовать Git (ранее я использовал subversion, но теперь я делаю некоторую совместную работу над проектом, который использует bitbucket и git).
Все шло хорошо до сегодняшнего дня, когда я обнаружил, что коллега с хорошими намерениями подтолкнул изменения к мастеру вместо того, чтобы сделать ветку. Это означает, что при попытке совершить коммит я получаю ошибку:
Обновления были отклонены, так как вершина текущей ветви находится позади
Я знаю, что это должно быть решено с помощью я делаю запрос на повторную синхронизацию, но я не хочу потерять изменения, которые я сделал локально, и я также не хочу принудительно фиксировать и стирать изменения, сделанные кем-то другим.
Каков правильный подход, позволяющий мне объединить изменения, не теряя ни того, ни другого?
4 ответов:
Если вы уже сделали несколько коммитов, вы можете сделать следующее
git pull --rebaseЭто поместит все ваши локальные коммиты поверх новых изменений.
Будьте очень осторожны с этим : это, вероятно, перепишет все ваши текущие файлы с файлами, как они находятся во главе филиала в удаленном РЕПО! Если это произойдет, а вы этого не хотели, вы можете отменить это изменение с помощью
git rebase --abort... естественно, вы должны сделать это, прежде чем делать что-то новое совершает!
Я бы сделал это так:
Этапе все неиндексированных изменений.
git add .Спрячь изменения.
git stash saveСинхронизация с пультом дистанционного управления.
git pull -rПовторите локальные изменения.
git stash popИли
git stash apply
У меня была такая же проблема. К сожалению, я был не на том уровне каталога.
Я пытался:
git push -u origin master-> произошла ошибкаТогда я попробовал:
git pull --rebase-> там все еще была проблема
Наконец я меняю каталогcd your_directoryЗатем я попробовал еще раз (
git push), и это работает!
Я смог преодолеть эту проблему со следующим изменением Visual Studio 2017:
- в Обозревателе команд перейдите в разделНастройки . Перейдите в раздел Global Settings, чтобы настроить этот параметр на глобальном уровне; перейдите в раздел Repository Settings, чтобы настроить этот параметр на уровне РЕПО.
- Установите Ребаз локальной ветви при подтягивании к нужной настройке (для меня это было True) и выберите Update для сохранения.
Comments