Can';t似乎在使用magit推送GitHub
我正在尝试使用Emacs 24.3.1上的Magit推送到GitHub存储库。注意,我在一个Windows盒子上 我已暂存并提交对文件的更改,M-x magit状态仅反映驻留在我的repo克隆中的未跟踪文件 要从Magit状态缓冲区推送,我执行Can';t似乎在使用magit推送GitHub,git,emacs,magit,Git,Emacs,Magit,我正在尝试使用Emacs 24.3.1上的Magit推送到GitHub存储库。注意,我在一个Windows盒子上 我已暂存并提交对文件的更改,M-x magit状态仅反映驻留在我的repo克隆中的未跟踪文件 要从Magit状态缓冲区推送,我执行p,得到的消息是: Running c:/Program Files (x86)/Git/bin/git.exe push -v origin master 它似乎挂在这里,没有进一步的活动是明显的。当我从命令行开始推送时,一切似乎都很好,系统会提示我输
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':
我已经使用git config
设置了user.name
,但显然这并不妨碍git在命令行提示我输入用户名
您知道我哪里出了问题,以及如何让Magit推送吗?
user.name
仅用于提交的作者身份,不用于身份验证。我想知道你是如何得到这个想法的,因为没有这样的特性被记录下来
身份验证的用户名必须通过显式设置。对于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密钥更安全,尤其是在有丢失或被盗风险的系统上,例如笔记本电脑。快速修复:
(setenv“GIT\u ASKPASS”“GIT gui--ASKPASS”)
检查此项:尝试将远程设备更改为使用
ssh
而不是https
。另外,*消息*
缓冲区中是否有任何内容?*消息*
缓冲区中没有任何内容。将尝试ssh
。当我切换到ssh://github.com/Username/emacs.d.git
,我获得了权限被拒绝(公钥)。
在*magit进程*
缓冲区中。请注意,我也从cmd行收到了相同的消息。最简单的解决方案是为您的github用户创建/添加公钥。谢谢!顺便问一下,MsysGit和MsysSSH是在Windows上使用SSH for git的最佳方式吗?@PatternMatching对不起,但我不知道。我的印象是,Windows上的Git可以使用Putty,这可以说是Windows上最好的SSH客户端,但我从来没有在Windows上真正使用Git本身(或Emacs)。我很久没有在Windows上工作了,那时我使用Git扩展,后来又简要介绍了SourceTree。