Github Merge запрос на тягу как-то переписал историю

На моем рабочем месте мы фиксируем код, сначала создавая ветку, создавая запрос на извлечение в нашем репозитории Github для этой ветви, а затем кто-то просматривает его и нажимает "Слить запрос на извлечение". Это довольно стандартный рабочий процесс.

Обычно, когда мы нажимаем "Запрос на слияние", Github создает новый коммит под названием "Запрос на слияние #1234 от фирменного имени" с двумя родителями - ГОЛОВОМ мастера и последним коммитом в PR.

Сегодня я слил PR как обычно, и почему-то Github решил вместо того, чтобы использовать HEAD of master в качестве одного из родителей, для которого он будет использовать коммит более дня назад (у нас 20 - 30 коммитов в день). Этот коммит, который он использовал, был коммитом, на котором была основана ветка PR. Это привело к тому, что ветвь master потеряла все коммиты между этим и PR-слиянием.

Кто-нибудь знает, как это могло произойти? Это ошибка с Github? Или разработчик, представивший пиар, сделал что-то плохое, что могло бы перезаписать мастер? Я думал, что все коммиты будут просто объединены в master без перебазирования или переписывания истории в Github.

1 ответ

Я связался с Github, и оказалось, что кто-то принудительно принудил к мастеру случайно, потому что последние версии git, как принудительное нажатие, появляются и для принудительного мастера, и для вашей ветви. У нас также не было включено защищенных веток Github ( https://github.com/blog/2051-protected-branches-and-required-status-checks), хотя мы делаем это сейчас, чтобы предотвратить это в будущем.

Другие вопросы по тегам