从 http 中提取以逃避身份验证(因此,如果我不使用 ssh.keygen,则无需输入密码)。
通过身份验证推送 ssh。
从 http 中提取以逃避身份验证(因此,如果我不使用 ssh.keygen,则无需输入密码)。
通过身份验证推送 ssh。
remote.<name>.url
远程存储库的 URL。请参阅 git-fetch(1) 或 git-push(1)。
remote.<name>.pushurl
远程仓库的推送 URL。参见 git-push(1)。
尝试将前者设置为http:
url,将后者设置为git+ssh:
(或只是git:
)url?
原始答案,用于 在一个“远程”中推送 ssh:这仅适用于一个repo,即当前一个:
如果您有一个git remote -v
返回“ origin
”的 https URL,您可以键入:
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,而不仅仅是我的 repos
然后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
选项将使其应用于所有存储库,而不仅仅是当前存储库。