2015-09-01 2 views
1

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

  1. Создан филиал feature_a от разработчика
  2. Создан филиал feature_b от разработчика
  3. Совершено работает на feature_a; толкнул вверх по течению и слился с разработчика
  4. нормированного feature_b от разработчика, чтобы включить все новые коммиты из разработчика
  5. ли еще несколько фиксаций на feature_b
  6. git push origin feature_b бросков: Обновления были отклонены, потому что кончик вашей текущей ветви позади его удаленного коллега.

Я не понимаю, почему локальная ветвь feature_b будет находиться за ветвью вверх по течению. Примечание: я единственный человек, работающий над этой веткой, и последний человек, который должен совершить дев.

+1

Вы предположительно нажали 'feature_b' или есть какая-либо метка на пульте дистанционного управления с таким же именем? – Darneas

+0

Когда вы переустанавливаете, вы создаете расхождение. Вероятно, вы захотите удалить пульт, а затем нажмите на локальный. – isherwood

+0

@isherwood, что-то, что я сначала рассмотрел ... Я полагаю, что «push -force» будет иметь тот же результат с меньшим количеством проблем. –

ответ

4

С тех пор, как вы перекомпилировали feature_b на последние изменения с dev, вы фактически изменили историю feature_b, так что теперь feature_b и origin/feature_b расходятся. Вам нужно будет git push origin feature_b --force, чтобы получить изменение в исходное положение.

Проблема в том, что git push предполагает, что происхождение/feature_b можно быстро перенаправить в вашу локальную ветвь. Поскольку вы пересобираете локальную ветку, ускоренная перемотка вперед невозможна.

С опцией --force вы сообщаете удаленной ветке игнорировать текущее состояние и перезаписываете ее локальной ветвью. Таким образом, git push --force origin feature_b просто переопределяет origin/feature_b с помощью local feature_b.

Обратите внимание, что опция --force может привести к потере фиксации удаленного репозитория, поэтому используйте его с осторожностью.

+0

Это будет иметь смысл ... Я бы это делал каждый раз, когда это происходит, или мой рабочий процесс с использованием rebase не является правильным? –

+0

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

Смежные вопросы