我在Windows 7上使用git bash。我们使用github作为我们的存储库来源。
每次推或拉我都必须提供用户名和密码凭据。我知道我的SSH密钥设置正确,否则我将无法访问存储库。 (也就是说,一旦我输入我的凭证,推/拉工作正常。)
我已进入
git config --global user.name myusername
git config --global user.email myemail
git config --global github.user myusername
git config --global github.token mytoken
但是,每次我推/拉时都要求我提供证件。
答案 0 :(得分:48)
确保使用ssh url作为github repo而不是https url。当您使用https而不是SSH时,它会询问用户名和密码。您可以检查文件.git/config
或运行git config -e
或git remote show origin
来验证网址,并在需要时进行更改。
答案 1 :(得分:30)
从git bash我更喜欢运行命令:
git config --global credential.helper wincred
此时运行git pull
之类的命令并输入您的凭据一次应将其存储以备将来使用。 Git有一个内置的凭证系统,可以在不同的操作系统环境中运行。您可以在此处获取更多详细信息:https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
答案 2 :(得分:6)
如果您是Mac用户并启用了钥匙串,则需要删除钥匙串中存储的授权信息
- Open up Keychain access
- Click "All items" under category in the left-hand column
- Search for git
- Delete all git entries.
然后,您应该使用git config从终端更改用户名和电子邮件:
$ git config --global user.name "Bob"
$ git config --global user.email "bob@example.com"
现在,如果您尝试推送到存储库,将要求您输入用户名和密码。输入您要切换到的登录凭据。如果您使用其他用户名和密码或终端上先前切换的帐户在浏览器上登录github,则通常会出现此问题。
答案 3 :(得分:6)
对于使用访问令牌和Windows环境的用户,有一种简单的方法可以执行: 开始->凭据管理器-> Windows凭据 ->查找行(git:https://whatever/your-repository/url)->编辑 用户名是PersonalAccessToken 密码是您的访问令牌
答案 4 :(得分:2)
添加为:
git remote add https://username:password@github.com/repodir/myrepo.git
答案 5 :(得分:0)
尝试使用ssh-agent安装SSH密钥以与git一起使用。它应该在使用密码后自动登录。
答案 6 :(得分:0)
如果您的仓库是HTTPS仓库,则git config -e在git bash中提供此命令。 通过在插入模式下打开来更新用户名和密码,更改密码或用户名给:x和Cntrl + z键 它将保存并退出
因此,从那时开始,当您将代码拉入/推送到存储库时,它将不会要求输入密码。
答案 7 :(得分:0)
在Windows上使用git bash时,以下其他答案的组合对我有用(使用GitHub客户端(即https,而不是ssh)签出的存储库):
git config --global credential.helper wincred
git pull
答案 8 :(得分:0)
我在此link里面写下了答案;
还是,我也在这里分享。
更改全局用户名和电子邮件
git config --global user.name "<username>"
git config --global user.email "<email>"
更改当前回购的用户名和电子邮件地址
git config user.name "<username>" --replace-all
git config user.email "<email>" --replace-all
答案 9 :(得分:0)
如果git bash由于最近更改了密码而无法正常工作。
您可以打开Git GUI,然后从那里进行克隆。它将要求 密码,输入后,您可以关闭GIT GUI窗口。
现在git bash可以完美运行了。
答案 10 :(得分:0)
GnuPG 可用作跨平台密码管理器,包括 GIT HTTPS 凭据。 只需使用您的 GPG 密钥对来加密/解密密码(令牌...)。 加密令牌(密码)运行:
gpg -e -o [PATH_TO_ENCRYPTED_TOKEN] -r "[GPG_KEY_USER_ID]"
输入标记(或复制粘贴),然后按 Ctrl+D 结束输入,或使用带有此标记的文件名。 然后制作自定义 git credential helper:名为 git-credential-[HELPER_LAST_NAME] 的 BASH 文件(不带 SH 扩展名):
#!/bin/bash
token=`gpg -d -r "[GPG_KEY_USER_ID]" [PATH_TO_ENCRYPTED_TOKEN] 2>/dev/null`
echo protocol=https
echo host=[YOUR_HOST]
echo username=[YOUR_USER_NAME]
echo password=$token
在 MS-WINDOWS 上的 GIT-BASH 路径名必须使用 UNIX 文件分隔符 -“/”,只需在 git-bash 中运行“echo $PATH”! 然后将 helper 放入 $PATH 中。 然后添加并检查助手:
git config --global credential.helper [HELPER_LAST_NAME]
#then check it (password will be printed as plain text!!!):
git credential-[HELPER_LAST_NAME]
GnuPG 可以在 Maven 项目中用作密码管理器,而不是 Maven 的密码加密方法。 等等。