似乎无法使用magit推送到GitHub

Pat*_*ing 5 git emacs magit

我试图在Emacs 24.3.1上使用Magit推送到GitHub存储库.请注意,我在Windows机器上.

我已经暂存并提交了对文件的更改,并且Mx magit-status仅反映驻留在我的repo克隆中的未跟踪文件.

要从Magit状态缓冲区推送,我这样做P P,我得到的信息是:

Running c:/Program Files (x86)/Git/bin/git.exe push -v origin master
Run Code Online (Sandbox Code Playgroud)

它似乎挂在这里,没有明显的进一步活动.当我从命令行推送时,一切似乎都很好,我被提示输入我的GitHub用户名:

PS H:\.emacs.d> git push -v origin master
Pushing to https://github.com/Username/emacs.d
Username for 'https://github.com':
Run Code Online (Sandbox Code Playgroud)

我已设置user.name使用git config,但显然这并不妨碍git在命令行提示我输入用户名.

我在这里出错的任何想法以及如何让Magit推进?

lun*_*orn 6

user.name仅用于提交的作者,而不用于身份验证.我想知道你是如何得到这个想法的,因为没有记录这样的特征.

必须通过git-credentials明确设置身份验证的用户名.如果是Github,请在Git配置中添加以下内容:

[credential "https://github.com"]
    username = johndoe
Run Code Online (Sandbox Code Playgroud)

哪里johndoe是与真实的用户名来代替,效果显着.

不过,我建议你使用SSH.生成SSH密钥对,将公钥添加到Github,并使用git@github.com:johndoe/myrepo.git而不是https://github.com/johndoe/myrepo.git远程.与Putty的auth代理一起,在将密钥添加到代理后,您将能够在没有任何进一步密码提示的情况下进行推送.

您还可以为不同的系统使用不同的密钥,并独立于其他密钥和Github密码撤销每个密钥.此外,SSH密钥不能用于登录Github本身,因此即使您的密钥丢失,您的Github帐户仍然是最安全的.总而言之,SSH密钥更加安全,特别是在有丢失或被盗风险的系统上,例如笔记本电脑.