Есть 2 вида git-репозитория, голые и не голые. Хранилище, не являющееся пустым, - это любое хранилище, которое имеет «рабочую копию», то есть некоторую часть хранилища, которая в настоящее время извлечена.
Вы можете вставить в не пустой репозиторий, но он не обновит извлеченную рабочую копию, даже если извлеченная ветвь совпадает с веткой, которую вы нажали. Это связано с тем, что у извлеченной копии могут быть изменения, которые не зафиксированы, и git никогда не уничтожит изменения без вашего явного запроса (обычно такие команды имеют аргумент --hard)
Чтение Почему я не вижу изменений в удаленном репо после "git push"? и Как бы я использовал "git push" для синхронизации с брандмауэром хоста? для полного описания проблемы и потенциального решения. Слово предупреждения: если вы запустили удаленное репо, любые не зафиксированные изменения в этом удаленном репо придется отбросить.
В общем, звучит так, что подход, который вы хотите, на самом деле не принят гиттерами, потому что он не совсем соответствует менталитету распределенного хранилища. Вы несете ответственность за актуальность вашей копии репо.