Git не предоставляет способа сделать это изначально, и если вы хотите использовать HTTPS для публичных c репозиториев и S SH для частных репозиториев, вам нужно будет сделать это вручную.
Причина этого в том, что Git не знает, что два разных URL-адреса хранилища отображаются в одном и том же хранилище. Хотя есть общие шаблоны, то, что работает для GitHub, не работает для моего персонального сервера, поэтому он не может ничего сказать об операции. Поэтому вам необходимо четко указать, что вы хотите.
Кроме того, единственный способ Git узнать, что удаленный HTTPS-сервер требует аутентификации, - это попытаться сделать запрос. Таким образом, чтобы выполнить sh то, что вы хотите, ему нужно будет сделать HTTP-запрос, понять, что он получил 401, прервать весь отдельный HTTP-помощник, выполнить откат, внутренне изменить протокол, а затем создать совершенно новый процесс для сделай это. Излишне говорить, что Git не имеет такой поддержки.
Как и другие предлагали, вы можете использовать S SH URL-адреса для ваших частных репозиториев и использовать HTTPS URL-адреса для ваших публичных репозиториев c с pushInsteadOf
настройка в вашем ~/.gitconfig
, но это был бы единственный способ достичь sh того, что вы хотите.