Сценарий, который вы описали, недопустим: удаленные репозитории git не допускают переходы к ветвям, когда они не ускоренные пересылки .
Скажем, вы хотите нажать на ветку b
. Пульт находится в точке r
. Ваш разработчик хочет протолкнуть коммиты из своей ветви b
на удаленный b
, начиная с точки d
до его заголовка: этот не будет работать, если r
не строго равен d
.
Это сделано специально: если бы вам было позволено это сделать, вы бы сломали ветки всех остальных разработчиков, которые работают над проектом, не говоря уже о очень высокой вероятности потери коммитов. Конечно, у разработчиков есть свои локальные reflogs, но все же.