Теперь говорится, что моя ветвь разработки "1 позади, а 2 впереди мастера"
Сравнение разработки с мастером показывает мои две функции "Запросы на извлечение".Сравнение мастера с разработкой показывает мой PR слияния для синхронизации ветвей.
Нет ошибок в вашей операции, и ответ (1 behind and 2 ahead of master
) также является правильным.
Прежде всего, вынужно знать, что означает " Squash Merge ".
Давайте назовем эти коммиты: коммит слияния от feature-branch-1 до Разработка равна A .Фиксация от feature-branch-2 до Development равна B .Фиксация слияния, созданная из Development в Master - C .
При выполнении объединения feature-branch-1 вРазработка с Squash Merge
, создаст новый коммит A '.На самом деле, сравните с их содержанием, между А и А нет никакой разницы.Но сама ветвь функции не имеет коммита, объединяющего ее с веткой по умолчанию.
Итак, следуйте этой логике.Пока вы выполняете Merge Development до Master, он создаст один новый коммит C '.После слияния в ветке Master добавляется только один новый коммит C ', а не C .Вот почему вы получаете отставание впереди как 1 behind and 2 ahead of master
.
Измените ветку сравнения на Разработка , вы увидите, что позади | впереди вашего feature-branch-1 и feature-branch-2 равен 2 | 1 .Это все из-за Squash Merge .
Преимущество Squash Merge заключается в том, что ваши ветки по умолчанию чисты и просты для отслеживания, не требуя каких-либо изменений рабочего процесса в вашей команде.
Но если вы хотите синхронизировать их с историей, измените тип слияния на Basic Merge .