Использование git rebase в публичных ветках функций

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

Моя команда всегда использует ветки для функций (вау), мы привыкли иметь это только локально, поэтому rebase isn 'Это проблема, но иногда мы хотим показать код частично выполненной функции другому разработчику, поэтому мы просто публикуем его, но тогда мы теряем все преимуществаgit rebaseили хотя быс тем, что вы можете прочитать в Интернете.

Я нене понимаю, чтоПроблема в том, что разработчики, работающие в одной и той же общедоступной ветке, никогда не объединяют ее с какой-либо веткой (когда в этой ветке еще есть разработка) и когда они ее извлекают, они делают это с помощью операции rebase. Любые изменения, внесенные в ветку, будут всегда перебазироваться поверх удаленной ветки, поэтому никогда не теряются и вы выигрываетене может быть проблемы с дублированием одного и того же коммита.

Добавить 1:

Ни один из ответов до сих пор не показал проблем, которые произойдут и как это произойдет, поэтому я постараюсь быть более ясным.

Я приведу пример рабочего процесса с использованием rebase (плохо описанного в предыдущих параграфах, извините), который я нене вижу никаких проблем.

Начальное состояние:

master         ==========A
origin/feature           +=====AB
feature user A           +=====AB
feature user B           +=====AB

master получает несколько коммитов, а пользователь A выполняет несколько коммитов:

master         ==========A=====C
origin/feature           +=====AB
feature user A           +=====AB====D
feature user B           +=====AB

Пользователь А делаетgit pull --rebase (он всегда делает это), чтобы обновить свою ветку, ничего нового не приходит, затем он перебазирует в master и нажимает:

master         ==========A=====C
origin/feature                 +=====ACB'=====ACB'D
feature user A                 +=====ACB'=====ACB'D
feature user B           +=====AB

(обратите внимание на B ' это новые коммиты, которые все еще представляют изменения B)

Затем пользователь B делает несколько коммитов:

master         ==========A=====C
origin/feature                 +=====ACB'=====ACB'D
feature user A                 +=====ACB'=====ACB'D
feature user B           +=====AB======E

Пользователь Б наконец делаетgit pull --rebase как всегда, нет необходимости делать ребаз на мастера, поэтому он просто толкает:

master         ==========A=====C
origin/feature                 +=====ACB'=====ACB'D======E'
feature user A                 +=====ACB'=====ACB'D
feature user B                 +=====ACB'=====ACB'D======E'

Ответы на вопрос(3)

Ваш ответ на вопрос