Git push отклонен после перебазировки ветки - PullRequest
790 голосов
/ 20 января 2012

ОК, я думал, что это простой сценарий git, чего мне не хватает?

У меня есть ветка master и ветка feature.Я делаю некоторые работы на master, некоторые на feature, а потом еще на master.Я получаю что-то вроде этого (лексикографический порядок подразумевает порядок коммитов):

A--B--C------F--G  (master)
       \    
        D--E  (feature)

У меня нет проблем с git push origin master, чтобы поддерживать удаленный master обновленным, или с git push origin feature (когдана feature) для поддержки удаленного резервного копирования для моей feature работы.До сих пор у нас все хорошо.

Но теперь я хочу перебазировать feature поверх F--G коммитов на master, поэтому я git checkout feature и git rebase master.Все еще хорош.Теперь у нас есть:

A--B--C------F--G  (master)
                 \
                  D'--E'  (feature)

Проблема: в тот момент, когда я хочу сделать резервную копию новой перебазированной feature, разветвленной с git push origin feature, push отклоняется дерево изменилось из-за перебазирования.Это можно решить только с помощью git push --force origin feature.

Я ненавижу использовать --force, не будучи уверенным, что мне это нужно.Так мне это нужно?Означает ли перебазировка обязательно , что следующая push должна быть --force ful?

Эта ветвь функций не используется другими разработчиками, поэтому у меня нет проблем deФакт с помощью принудительного толчка, я не собираюсь терять данные, вопрос более концептуальный.

Ответы [ 11 ]

1 голос
/ 25 сентября 2015

Поскольку ОП понимает проблему, просто ищет более подходящее решение ...

Как насчет этого на практике?

  • Вступайте в настоящую ветку разработки функций (где вы никогда не делаете перебазировок и форс-пуш, чтобы ваши коллеги-разработчики не ненавидели вас).Здесь регулярно берут эти изменения с основного слияния. История Мессье , да, но жизнь проста, и никто не мешает его работе.

  • Есть вторая ветвь разработки функций, где one Регулярный член команды функций выдвигает все функции, действительно перебазированные, действительно форсированные.Так что почти чисто на основе довольно недавнего мастер-коммита.По завершении функции нажмите эту ветку поверх мастера.

Возможно, для этого метода уже есть имя шаблона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...