Как устранить ошибку git: "обновления были отклонены, потому что верхушка вашей текущей ветви находится позади"



Я недавно начал использовать Git (ранее я использовал subversion, но теперь я делаю некоторую совместную работу над проектом, который использует bitbucket и git).



Все шло хорошо до сегодняшнего дня, когда я обнаружил, что коллега с хорошими намерениями подтолкнул изменения к мастеру вместо того, чтобы сделать ветку. Это означает, что при попытке совершить коммит я получаю ошибку:




Обновления были отклонены, так как вершина текущей ветви находится позади




Я знаю, что это должно быть решено с помощью я делаю запрос на повторную синхронизацию, но я не хочу потерять изменения, которые я сделал локально, и я также не хочу принудительно фиксировать и стирать изменения, сделанные кем-то другим.



Каков правильный подход, позволяющий мне объединить изменения, не теряя ни того, ни другого?

1220   4  

4 ответов:

Если вы уже сделали несколько коммитов, вы можете сделать следующее

git pull --rebase

Это поместит все ваши локальные коммиты поверх новых изменений.

Будьте очень осторожны с этим : это, вероятно, перепишет все ваши текущие файлы с файлами, как они находятся во главе филиала в удаленном РЕПО! Если это произойдет, а вы этого не хотели, вы можете отменить это изменение с помощью

git rebase --abort 

... естественно, вы должны сделать это, прежде чем делать что-то новое совершает!

Я бы сделал это так:

  1. Этапе все неиндексированных изменений.

    git add .
    
  2. Спрячь изменения.

    git stash save
    
  3. Синхронизация с пультом дистанционного управления.

    git pull -r
    
  4. Повторите локальные изменения.

    git stash pop
    

    Или

    git stash apply
    

У меня была такая же проблема. К сожалению, я был не на том уровне каталога.

Я пытался: git push -u origin master -> произошла ошибка

Тогда я попробовал: git pull --rebase -> там все еще была проблема
Наконец я меняю каталог cd your_directory

Затем я попробовал еще раз (git push), и это работает!

Я смог преодолеть эту проблему со следующим изменением Visual Studio 2017:

  1. в Обозревателе команд перейдите в разделНастройки . Перейдите в раздел Global Settings, чтобы настроить этот параметр на глобальном уровне; перейдите в раздел Repository Settings, чтобы настроить этот параметр на уровне РЕПО.
  2. Установите Ребаз локальной ветви при подтягивании к нужной настройке (для меня это было True) и выберите Update для сохранения.

См.: https://docs.microsoft.com/en-us/vsts/git/concepts/git-config?view=vsts&tabs=visual-studio#rebase-local-branch-when-pulling

Comments

    Ничего не найдено.