Задать вопрос
Vextor-ltd
@Vextor-ltd
Webdeveloper

Как исправить ошибку: не удалось перенести некоторые рефсы в ветку?

Сервак с Гитлабом отключался, когда я пушил в ветку репы коммит.
А потом я по запаре второпях что-то сделал, точно не помню что, но мне кажется я зачем-то сделал аменд предпоследнего коммита, а потом ещё и закоммитил последние изменения "Правка контроллеров, адаптивная верстка account/order" и получилась фот такая вот фигня.
Т.е. предпоследний локальный зааменденный локально коммит по сути не нужен, он есть в репозитории, а последний нужен и его нужно запушить.
Подскажите как исправить ситуацию?
67940f4d9166b437249137.jpeg
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Сделав amend вы фактически убрали этот коммит f97331c1c из ветки vlad-account в локальном репозитории и начали строить альтернативную версию этой ветки от предыдущего коммита. Так как старый коммит никуда не исчез из дерева (на него по прежнему указывает ветка origin/vlad-account), получается, что вы создали разветвление, а ветки vlad-account и origin/vlad-account теперь стали разными ветками, поэтому гит не знает что делать если быстрая перемотка невозможна (non-fast-forward).

В данной конкретной ситуации, думаю, проще удалить старую историю, отправив локальную версию принудительно, указав ключ force.

git push --force

Гит вам советует склеить ветки обратно перед отправкой через pull
Это тоже вариант, но получатся дубли коммитов в истории и, возможно, конфликты.
Лучше просто перезаписать вторую ветку.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы