Подтвердить что ты не робот

Git избегать "мастера объединения слияния"

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

Как только его время нажать на начало координат, я бы заподозрил, что мы можем объединить локальные, а затем нажать на начало. Я ожидал получить довольно прямую историю версий без описанных объединений.

Судя по довольно сложной карте Subway Map и постоянно повторяющемуся сообщению "master" ветки Merge, я думаю, что мы делаем что-то не совсем правильно.

  • В чем причина того, что сообщения "Объединить ветку с хозяином"?
  • Как эта версия истории может быть проставлена?

У меня такое чувство, что на этот вопрос ответили ранее, но я не мог полностью понять информацию, которую я собрал.

Git Version History

4b9b3361

Ответ 1

Я думаю, что вы ищете git rebase.

Каждое из объединений, записанных в вашей истории, было необходимо с точки зрения "сохранить истинную историю". Ваши ветки расходились в этой точке и впоследствии были объединены (обратите внимание, как обе ветки совершают уникальную для них связь, поэтому ускоренная пересылка невозможна.

Если вы перебалансируете, текущий совет (включая изменения со стороны вашего коллеги) станет новой точкой ветвления, и если они не вступят друг в друга, ваши изменения могут быть применены быстрой перемоткой вперед, создавая впечатление линейного развития ( но с немонотонными временными метками).

Ответ 2

У нас есть случай, похожий. Хотя мы используем центральное мастер-репо, у нас часто есть отдельные разработчики, генерирующие сообщение "Мастер" слияния. Наше решение состояло в том, чтобы разработчики выполняли git pull --rebase, когда вы тянули с удаленного репозитория master.