Когда безопасно перебазировать выдвинутую ветку - PullRequest
0 голосов
/ 19 октября 2018

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

Итак, каковы последствия?

Я единственный разработчик в этой ветви функций, и мне нет дела до меня, если я переписываю историю на нем.Но как это влияет на других?

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

  1. Кто-то разветвился / перебазировался из моей ветки: они получают незапрошенную перебазку своей ветки при следующей попытке
  2. Кто-то слил мою веткув их: они неожиданно получают измененный коммит слияния и, следовательно, возможные конфликты при их следующем извлечении
  3. Кто-то выбрал коммит: ???
  4. Был открытый запрос на слияние / извлечение: сейчасуказывает на перебазированную ветку ???
  5. Вещи, связанные с коммитами в Issues, MR / PR, Platform-Markdown: Укажите на обновленные файлы / коммиты?

1 Ответ

0 голосов
/ 19 октября 2018

Последствия для людей, которые основывают свою работу на вашей ветке до перебазирования.Подумайте, что произойдет, если вы выполнили 3 ревизии в своей ветви функций и разработчик B затем запустил ветку из своей ветви и выполнил 3 коммита .... затем вы сделали ребазинг ... и в конце концов ваша ветвь объединится, скажем, с master.Хорошо ...... что другой разработчик заканчивает работу после 3-х ревизий и просит объединиться.Как будет выглядеть история, если эта ветвь объединится прямо?Он будет иметь дубликаты для ваших 3 коммитов (оригинальные ревизии и те, которые появились после вашей перебазировки) ... не самая лучшая вещь, верно?В этом случае другой разработчик должен был перебазировать поверх вашей перебазированной ветки или мастера после того, как он был объединен.Другой сложный сценарий - когда вы перебазируете общую ветку и никому не говорите.Предположим, что вы исправили последние 3 ревизии мастера и заставили его заменить общий мастер .... если у вас есть разработчики, которые уже работают с оригинальным мастером, когда они пытались протолкнуть изменения в эту ветку, они не будутразрешено, потому что ветви разошлись, и они не объединили нового мастера (а лучше их не делать, потому что в конечном итоге вы получите повторяющиеся ревизии ... они также должны быть перебазированы).

...