从http拉到转义验证(如果我没有使用ssh.keygen,我不需要输入密码)。
通过身份验证推送ssh。
答案 0 :(得分:18)
remote.<name>.url
遥控器的网址 库。请参阅git-fetch(1)或 GIT-推(1)。
remote.<name>.pushurl
推送网址 一个远程存储库。见git-push(1)。
尝试将前者设置为http:
网址,将后者设置为git+ssh:
(或仅git:
)网址?
答案 1 :(得分:10)
原始答案,用于在一个“远程”中通过ssh推送:这仅适用于一个回购,当前回购:
如果您有一个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,而不仅仅是我的存储库
然后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: how to get the public, read-only git:// URL”中提到了该选项。
--global
选项将使它应用于所有 all 仓库,而不仅仅是当前仓库。