Я читал о git rebase
и преимуществах использования рабочего процесса rebase вместо рабочего процесса слияния.(На самом деле я не сталкивался с приведенными ниже ситуациями, так как я новичок в git)
Я читал, что один из стандартных рабочих процессов для проектов с несколькими участниками заключается в том, чтобы участник регулярно регулярно rebase
писал ихветка с мастер веткой "основной (центральный / правда / канонический) репозиторий".Перебазирование перед выполнением запроса на извлечение приводит к быстрому продвижению слияний.
Хотя эта часть имеет смысл для меня, я вижу много ситуаций, когда слияния не будут быстрыми вперед.Я хочу знать, что происходит в этих ситуациях.Перетаскивает ли хозяин проекта (владелец канонической ветви) ветвь темы в локальную ветвь, rebase
и merge
(чтобы убедиться, что она остается ускоренной перемоткой вперед), или менеджер проекта просто не выполняет перемотку вперед?merge
?
Как только участник перезагружает и помещает свою ветку темы в общедоступный репозиторий, нажатие второй rebase
становится невозможным.Что произойдет, если те, кто просматривает вклад, захотят увидеть часть кода, улучшенную / настроенную перед слиянием?Основная ветка, вероятно, изменилась бы к тому времени, когда участник вносит исправления, и участник не может rebase
, поскольку это будет означать переписывание истории общедоступного репозитория.
Еще одна ситуация, когда ускоренная перемотка вперед невозможна, - это когда несколько представлений делаются до того, как менеджер проекта может объединить их в основную ветвь.В то время как первое слияние будет ускоренным, остальные не будут.
Подводя итог моему вопросу: Что происходит в ситуациях, когда ветвь, которую необходимо подтянуть, не основана на master
и не может быть перебазирован участником?Проводит ли менеджер проекта самосовершенствование перед слиянием или просто выполняет слияние без ускоренной перемотки?