似乎无法使用magit推送到GitHub

时间:2014-08-22 15:27:46

标签: git emacs magit

我正在尝试使用Emacs 24.3.1上的Magit推送到GitHub存储库。请注意,我在Windows机器上。

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

要从Magit状态缓冲区推送P P,我收到的消息是:

Running c:/Program Files (x86)/Git/bin/git.exe push -v origin master

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

PS H:\.emacs.d> git push -v origin master
Pushing to https://github.com/Username/emacs.d
Username for 'https://github.com':

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

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

2 个答案:

答案 0 :(得分:6)

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

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

[credential "https://github.com"]
    username = johndoe

显然,johndoe替换为您的真实用户名。

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

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

答案 1 :(得分:1)

快速修复:

(setenv "GIT_ASKPASS" "git-gui--askpass")

请检查:https://github.com/magit/magit/wiki/FAQ#windows-cannot-push-via-https