Могу ли я сделать вход в PHP под другим пользователем при запуске shell_exec или
EXEC
Это рискованный вариант, и он может создать серьезную дыру в безопасности вашего сервера. Этого следует избегать.
я хочу выполнять команды от имени пользователя git
Я бы посоветовал вашему веб-приложению записать в таблицу базы данных информацию о новом репо, который необходимо создать. Затем запустите постоянно запущенный процесс (или тот, который вызывается через cron) на сервере, который запускается от имени пользователя git. Этот процесс может периодически проверять этот ресурс и создавать репо. Таким образом, ваш веб-сервер не переключается пользователем, и вы все еще можете безопасно создать новое хранилище.