Исходный ответ, для проталкивания ssh в одном «удаленном» : это относится только к одному репо, текущему:
Если у вас есть git remote -v
, который возвращает https URL для "origin
", вы можете ввести:
git config remote.origin.pushurl git@github.com:aUser/aRepo
Или, скорее:
git remote set-url --push git@github.com:aUSer/aRepo
Как указано :
Он не отличается функционально, так как set-url
внутренне заканчивается просто вызовом config.Но set-url
будет жаловаться, если вы неправильно наберете командную часть "git remote set-url --push
", тогда как git config будет молча принимать опечатки, но на самом деле не сможет установить URL пульта.
См. git-reference (здесь адаптировано):
$ git remote -v
origin https://github.com/schacon/git-reference.git (fetch)
origin https://github.com/schacon/git-reference.git (push)
$ git remote set-url --push origin git@github.com:schacon/git-reference.git
$ git remote -v
origin https://github.com/schacon/git-reference.git (fetch)
origin git@github.com:schacon/git-reference.git (push)
В контексте вознаграждения jww добавляет:
Я хочу, чтобы это применялось ко всем github.com, а не только к моим репозиториям
Тогда git remote
не является ответом.
Только url.<base>.pushInsteadOf
будет применяться к всем репозиториям:
Любой URL, начинающийся с этого значения, не будет передан;вместо этого он будет перезаписан для начала, а полученный URL будет передан.Я
Итак:
git config --global url."git@github.com:".pushInsteadOf https://github.com/
# or
git config --global url."ssh://git@github.com/".pushInsteadOf https://github.com/
Я упомянул эту опцию в 2014 году в " Git: как получить публичный доступный только для чтения git: // URL".
Опция --global
позволяет применить ее к всем репо, а не только к текущему.