2015-09-15 17 views
1

На моем рабочем месте мы совершаем код, сначала создавая ветку, создавая запрос на перенос в нашем реестре Github для этой ветви, а затем кто-то просматривает его и нажимает «Запрос на слияние». Это довольно стандартный рабочий процесс.Github Merge pull request как-то переписал историю

Обычно, когда мы нажимаем «Запрос на слияние», Github создает новый комманд, называемый «Запрос слияния с доставкой №1234 из браншнама» с двумя родителями - HEAD мастера, и последняя фиксация в PR.

Сегодня я объединил PR как обычно, и как-то Гитуб решил вместо того, чтобы использовать ГЛАВУ мастера как одного из родителей, он использовал бы фиксацию более дня назад (мы делаем 20-30 коммитов в день). Это обязательство, которое оно использовало, заключалось в том, что связь с PR-ветвью была отключена. Это привело к тому, что главная ветвь потеряла все коммиты от между этим и этим PR-слиянием.

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

+1

Я не думаю, что разработчик может сделать что-то плохое в этом отношении; вы либо попали в ошибку с github, либо предположение о том, что были совершены коммиты, которые уже были перенесены в github, (я подозреваю, что последний). –

+1

Публично ли вы можете ссылаться на соответствующую фиксацию? – jonrsharpe

+0

Вы пытались объединить удаленно из командной строки или использовать зеленую кнопку «Слияние» GitHub? – nishanths

ответ

0

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