Слияние запроса Pull объединило сразу несколько ветвей - git


1

Вчера я объединил 1 запрос на получение ветки, сделанный другим разработчиком, который я заменяю, пока он отдыхает в Master, изменения кода в этой ветке были проверены и протестированы полностью.

Внезапно он сообщил о стольких ошибках, совершенно не связанных с изменениями в этой ветке, которые слились в этом запросе на тягу, поэтому мы предположили, что это что-то еще (в последнее время у нас были проблемы с нашим CI, потому что это план реорганизовать КИ).

Сегодня утром я закричал двумя разными разработчиками, требуя объяснения, почему я объединил свои ветки, когда они не закончены.

Я понятия не имею, как это возможно. В одном запросе Pull вы объединяете разные ветки с тем, который генерировал запрос Pull?

Может кто-нибудь объяснить, если это возможно, почему и как.....

Источник
  •  20
  •  1
  • 11 мар 2020 2020-03-11 14:44:57

1 ответ

3

Мы испытали это, когда разработчик создал branch B на основе branch A которую еще предстоит объединить. Принятие слияния branch B также принимает branch A до фиксации, с которой была создана branch B

Запрос на растяжение будет включать все изменения из branch B но не обязательно все изменения из branch A Это может привести к нарушенным/неполным изменениям.

Я надеюсь, что нижеследующее поможет объяснить, что я имею в виду:

*
|
| 
|  
|   
|    
|     * commit to branch A
|     |
|     * commit to branch A
|    /|
|   / | 
|  *  | commit to branch B
|  |  |
|  |  * commit to branch A
|  |  
|  * commit to branch B
| /   
|/    
* merge branch B in to master (first two commits from branch A are included)