Проблема в том, что когда вы пытаетесь подтолкнуть, вы делаете 2 действия одновременно.
Первый - обновить git tree, а второй - обновить рабочий каталог на вашем ноутбуке. Так что в процессе push есть неявная «проверка», и git отказывается это делать, и это правильно.
Представьте, что произойдет, если кто-то действительно будет работать на вашем настольном ПК.
Когда вы делаете SSH, все по-другому, вы находитесь в своем рабочем каталоге, вы несете ответственность за все, что вы делаете, и поэтому можете делать все, что захотите, удаляя файл, «вытягивая». Таким образом, в некотором роде кажется, что нажатие не позволяет (по умолчанию) портить удаленный компьютер.
Обновление
Если вы устанавливаете параметр receive.denyCurrentBranch игнорировать, вы можете нажать, но вам все равно придется «синхронизировать» ваш рабочий каталог с «последней» версией кода (той, которую вы только что нажали). Это означает, что у вас еще есть две команды для запуска по одной на каждом компьютере
Если вы действительно хотите запустить только одну команду, используйте силу оболочки и создайте псевдоним, который выполняет git pull с настольного компьютера
alias remote_pull=ssh <desktop> "cd <path>; git pull"