Git Pull говорит в современном, но Git push отвергает непередачу вперед

StackOverflow https://stackoverflow.com/questions/4312059

  •  29-09-2019
  •  | 
  •  

Вопрос

Я только что вытащил новую ветку, внес несколько локальных изменений, совершил и пытался толкнуть. Мне дали эту ошибку: ! [rejected] groups -> groups (non-fast forward)Поэтому я пытался тянуть, но было сказано Already up-to-date.

Вот то, что я тяну, а потом толкнуть.

~/dev$ git pull origin groups
Already up-to-date.
~/dev$ git push origin groups
To /mnt/ebs/git/repo.git
 ! [rejected]        groups -> groups (non-fast forward)
error: failed to push some refs to '/mnt/ebs/git/repo.git'

Может ли кто -нибудь объяснить, как это может произойти и как я могу это исправить?

Это было полезно?

Решение

Когда вы вытащили ветвь, вы использовали опцию «--лера» (чтобы сохранить локальную филиал, отслеживая удаленную ветвь). Если вы этого не сделали, это может объяснить, что команда "Merge", которая не работает.

Вы можете сделать слияние вручную:

git fetch
git merge origin/groups

Для сравнения местных и удаленных REPOS, я предлагаю вам эту команду (добавить его в псевдоним, это полезно):

git log --graph --oneline --all --decorate

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

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

git rebase origin/groups
git push origin groups

Другие советы

Я пришел сюда с другой проблемой.

Мой git был настроен, чтобы продвинуть все ветви. Я был в филиале, но он также пытался подтолкнуть мастера, что не было в курсе. Хитрость заключалась в том, что он пытался подтолкнуть мастера:

To git@git.machine:repo
 ! [rejected]        master -> master (non-fast-forward)

Я добавил следующее на мой .gitconfig, чтобы только толкать текущую ветвь по умолчанию:

[push]
    default = current

Это не ответ на заданный вопрос. У меня была другая проблема с одним и тем же сообщением об ошибке.

Моя локальная ветвь не имела удаленной ветви, чтобы потянуть изменения с настройки правильно [Git Pult]. Это было очевидно от O / P git remote show origin. Отказ Итак, мне пришлось использовать git pull origin <branch_name> вместо git pull тянуть изменения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top