Windows下的Git bash没有提示输入密码

10

我是一名学生,对版本控制软件非常陌生,所以我在使用中遇到了一些困难。我正在使用Google Code Git仓库。为了访问该仓库,我在Windows 7上使用Git Bash。问题是当我到达推送步骤时,它没有提示我输入密码。例如:

首先,我像这样设置全局变量:

git config --global user.name "Your Name"
git config --global user.email youremail@gmail.com 

克隆的

$ git clone https://UserName@code.google.com/p/repository/

然后我对文件进行了更改/添加新文件等,并添加了

$ git add .

已提交

$ git commit -m "Message"

拉取以确保我是最新的

$ git pull
Already up-to-date.

但是当我进行推送操作时,没有提示我输入密码

$ git push origin master
fatal: remote error: Invalid username/password.
You may need to use your generated googlecode.com password; see https://code.goo
gle.com/hosting/settings
任何建议?谢谢。
4个回答

16
如果遇到与 machine.google.com 无关的类似问题,你可以尝试在 Windows 凭据管理器中删除或更新保存的 Git 密码。我的系统保存了旧密码:
  1. 启动凭据管理器。
  2. 输入:Credential Manager。
  3. 双击“Windows 凭据管理器”快捷方式。
  4. 单击“Windows 凭据”选项卡。
  5. 找到要移除的凭据,它们将以“git:”开头,可能以“ada:”开头。
  6. 单击凭据条目,它会打开条目的详细信息视图。
  7. 单击“删除”以删除凭据,或单击“编辑”以更新密码。
参考来源:https://github.com/Microsoft/Git-Credential-Manager-for-Windows/issues/141

这很有帮助。我能够在Windows凭据管理器下找到Github凭据。我删除了其中一个“持久性:本地计算机”,然后它就起作用了。稍后GitBash提示输入用户名和密码。谢谢。 - aashima

4

编辑:看起来你不能通过将用户名放在URL中成功访问google code(至少截至2011年8月),请参见此处:netrc not accepted by git


也就是说,这个方法可能会有效:

从上面显示的URL中获取(您需要访问该网站):

对于Git存储库,您可以将以下行添加到您的.netrc文件中,记录每个存储库域的密码,您具有提交访问权限。确保您已设置了.netrc的权限,以便只有您的用户帐户可以读取它。

machine code.google.com login blah.blah@gmail.com password mypasswordXXX123

一旦您拥有了上述项目,看起来在Git Bash中,您应该能够像这样更新您的_netrc文件:

echo "machine code.google.com login blah.blah@gmail.com password mypasswordXXX123" > $HOME/_netrc


我认为因为我在克隆命令中使用了用户名,所以应该提示我输入密码,而不需要_netrc文件。 - EV3R14
看起来这种问题以前就出现过:http://groups.google.com/group/google-code-hosting/browse_thread/thread/21391bc402e94c79?pli=1 - 这里有更多信息 - http://code.google.com/p/support/wiki/GitFAQ - 但没有针对这个特定问题的解决方案... - Adam Rofer
2
在Linux中使用Google代码时遇到了同样的问题。git clone可以工作,但是提交突然不行了。从.git/config中删除用户名强制git重新请求用户名和密码。谢谢!现在可以工作了。 - ufk

2

ufk的评论是正确的答案。更明确地说,如果您使用push()将元素添加到数组中,则该元素将成为数组的最后一个元素。

git push https://code.google.com/p/name-of-project/ master

如果未设置 .netrc,您将被提示输入用户名和密码。您可以指定其他分支而不是 master 分支,但省略分支可能无法正常工作。


0
将以下命令放入git bash中: git config --global core.askpass /usr/libexec/git-core/git-gui--askpass

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接