Решение предельно простое. Допустим у нас есть проект в котором ветке main лежат две папки: client и server
Команда git subtree push --prefix client origin client отправляет ваш клиент из подкаталога client в локальном репозитории в ветку client внешнего репозитория origin.
Конкретно в этом случае:
git subtree push — запускает команду Git для отправки изменений из подкаталога во внешний репозиторий.
--prefix client — указывает на подкаталог client, который необходимо отправить во внешний репозиторий.
origin — имя внешнего репозитория, куда будет отправлено содержимое подкаталога.
client — название ветки, в которую будут отправлены изменения.
В результате выполнения этой команды, содержимое подкаталога client будет отправлено в ветку client внешнего репозитория origin, как если бы корень репозитория изначально был в каталоге client, т. е. в ветке не будет самого каталога client, там будет только его содержимое.
Аналогично с сервером git subtree push --prefix server origin server