Мне жаль, что вы открыли философскую дискуссию о слиянии с rebase, но у меня есть практический вопрос, касающийся типичного рабочего процесса компании (а не рабочего процесса проекта с открытым исходным кодом, который может быть другим).
Rebasing, как указано здесь, не следует использовать, если вы нажали свои изменения. Это так, потому что другие могут быть разветвлены из вашей ветки, а затем переписывать историю этой ветки (посредством принудительного нажатия) будет затруднять их.
Таким образом, правильный способ использования переустановки - это совершение только локально. Но, по крайней мере, в моем кратком опыте это нежелательно:
- что, если ваш компьютер украден?
- что, если вы потеряете данные из-за сбоя диска?
- что делать, если вам нужно работать в двух местах (например, этот человек)
Сохранение локальной ветки признака является чем-то противоречивым для меня. Не только из-за вышеупомянутых моментов, но и из-за следующего прецедента: вы работаете над функцией, но либо перетаскиваете на что-то более срочное, либо отправляетесь в отпуск, либо заболеваете. Коллега должен его закончить. Затем вы переустанавливаете и нажимаете (если вы не больны, и в этом случае он остается местным, и никто не может его завершить), а другой человек завершает его.
В течение этого периода происходят изменения в мастер. Но другой человек уже основан на удаленной ветки, поэтому он должен либо использовать слияние, либо rebase и force-push (что, опять же, может навредить вещам, если другие люди основывали свои ветки на этом тем временем).
Они могут звучать как кромки, но это не так. По крайней мере одно из этих условий (работа из дома, заболевание, выход в отпуск, завершение работы другого человека и т.д.) Происходит довольно часто.
Итак, использует "rebase" хороший способ пойти в этих случаях, или слияние (с дополнительными "коммитами" ) является более безопасным и более простым вариантом?