6

我正在尝试在 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

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

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

我已经设置user.nameusing git config,但显然这并没有阻止 git 在命令行提示我输入我的用户名。

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

4

2 回答 2

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 的身份验证代理一起,将密钥添加到代理后,您将能够推送而无需任何进一步的密码提示。

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

于 2014-08-22T20:11:22.217 回答
2

快速解决:

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

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

于 2015-01-15T15:25:31.793 回答