Они не совсем равны. pull
объединит коммиты с текущей веткой, но push
не объединит и скажет «отклонено».
Например, если X является общим коммитом
Пульт дистанционного управления: X - A - B
пульт ДУ: X - P - Q
remote-a >> git pull remote-b brach
объединит две ветви, и у вас может получиться что-то вроде
Х-А-В-Р'-Q '
но это не похоже на
remote-b >> git push remote-a branch
что скажет !rejected
Ну, это Github
поведение. Я не работал с другими пультами, но, думаю, поведение push и pull не изменилось.
Записка от git help push
для -f.--force
флаг
Обычно команда отказывается обновлять удаленную ссылку, которая не является
предок локального ссылки раньше переписывал его. Этот флаг
отключает проверку. Это может привести к потере коммитов в удаленном репозитории; используйте это с осторожностью.