Последствия сброса git --HARD для публичной ветки? - PullRequest
1 голос
/ 18 января 2020

Я читал git учебник здесь , где они упоминают:

не используйте git сброс в общедоступной ветке, из которой другие разработчики тянут , поскольку это заставит ненужные слияния других разработчиков очистить историю

Я не понял, в чем проблема. Если у меня есть ветвь c с 4 коммитами, A-> B -> C -> D. Будучи последним коммитом. Если я сделал полный сброс обратно к B. Затем, для других разработчиков, которые уже загрузили эту ветку, когда они сделают git выборку снова, они увидят, что они на 2 коммита впереди удаленного, поэтому они возвращаются к Б и хороши правильно? Или я что-то пропустил?

1 Ответ

2 голосов
/ 18 января 2020

За исключением (скажем, Боб), дважды совершил на своем локальном, сверху D

A---B---C---D <<< shared-master, origin/shared-master
             \
              E---F <<< feature-bob

, но теперь после извлечения он видит это:

  A---B <<< origin/shared-master
       \
        C---D <<< shared-master
             \
              E---F <<< feature-bob

Так он (и всем остальным), возможно, придется разрешать неприятные конфликты, чтобы перебазировать его ветку поверх B без 1) нарушения его собственной функции или 2) возврата в новые общие части ветви того, что было нежелательно в C и D. Конечно, в конечном итоге это зависит от ситуации, а это означает, что в некоторых случаях ее будет легко решить, но в принципе именно поэтому ее следует избегать. С большим количеством сотрудников и / или большим количеством изменений, это часто является большим нет-нет в командах.

...