【问题标题】:Configuring user and password with Git Bash使用 Git Bash 配置用户和密码
【发布时间】:2012-02-09 01:33:38
【问题描述】:

我在 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

但每次我推/拉时都会要求我提供凭据。

【问题讨论】:

标签: git github credentials


【解决方案1】:

非常简单的解决方案,你必须使用引号:

git config --global user.name "your name" 

【讨论】:

    【解决方案2】:

    我在另一个答案中写了一个答案:How to change git account in Git bash?

    不过,我也在这里分享。

    更改用户名和电子邮件全球

    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
    

    【讨论】:

      【解决方案3】:

      对于那些使用访问令牌和 Windows 环境的人来说,有一个简单的方法来做到这一点:

      开始菜单 → Credential ManagerWindows Credentials → 找到该行 (Git: https://whatever/your-repository/url) → 编辑, 用户名是“github_username”,密码是你的访问令牌。

      【讨论】:

      • 我有多个与我合作的不同公司的 git 帐户,我想没有办法在凭证管理器中存储多个帐户?
      • 用户名是“github用户名”
      【解决方案4】:

      确保您使用的是 GitHub 存储库的 SSH URL,而不是 HTTPS URL。当您使用 HTTPS 而不是 SSH 时,它将询问用户名和密码。您可以检查文件 .git/config 或运行 git config -egit remote show origin 来验证 URL 并根据需要进行更改。

      您可以使用以下命令更改 URL:[1]

      git remote set-url origin git+ssh://git@github.com/username/reponame.git
      

      [1] 这部分包含对this question 的回答。

      【讨论】:

      • 由于内部防火墙规则,我无法使用 SSH(不要问...)还有其他方法可以让 git 自动登录吗?
      • @Jorn 无法更改用于 SSH 的端口是个痛点。
      • git+ssh:// 有用吗?我试过并得到一个错误,但删除它然后推送它工作。
      • 终于有用了!
      【解决方案5】:

      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”即可! 然后像在 $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 的密码加密方法。 以此类推。

      【讨论】:

        【解决方案6】:

        如果 git bash 由于最近更改密码而无法正常工作。

        您可以打开 Git GUI,然后从那里克隆。它会要求 密码,一旦输入,您可以关闭 GIT GUI 窗口。

        现在 git bash 将完美运行。

        【讨论】:

          【解决方案7】:

          将遥控器添加为:

          git remote add https://username:password@github.com/repodir/myrepo.git
          

          【讨论】:

          • 现在是 git remote add
          【解决方案8】:

          对于 Windows 的 git bash,其他答案的以下组合对我有用(使用 GitHub 客户端检出的存储库,即 https,而不是 ssh):

          1. Generate a Personal Access Token
          2. 在您的存储库中启动 git bash 会话
          3. 运行git config --global credential.helper wincred
          4. 运行git pull
          5. 将 PersonalAccessToken 作为用户名
          6. 将个人访问令牌作为密码

          【讨论】:

            【解决方案9】:

            如果你的 repo 是 HTTPS repo,git config -e 在 git bash 中给出这个命令。 通过在插入模式下打开来更新用户名和密码,更改密码或用户名给 :x 和 Cntrl+z 键 它会保存并退出

            因此,从那时起,当您将代码拉取/推送到存储库时,它不会要求输入密码。

            【讨论】:

              【解决方案10】:

              如果您是 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,或者之前在终端上切换了帐户,通常会弹出此问题。

              【讨论】:

              • 这对我有帮助。虽然没有必要删除 git 条目,但您可以在此处对其进行编辑。
              【解决方案11】:

              我更喜欢从 Git Bash 运行命令:

              git config --global credential.helper wincred
              

              此时运行git pull 之类的命令并输入您的凭据一次应该将其存储以供将来使用。 Git 有一个内置的凭证系统,可以在不同的操作系统环境中工作。您可以在此处获取更多详细信息:7.14 Git Tools - Credential Storage

              【讨论】:

              【解决方案12】:

              尝试使用 ssh-agent 安装 SSH 密钥以用于 Git。它应该在使用密码后自动登录。

              【讨论】:

                猜你喜欢
                • 2012-03-13
                • 1970-01-01
                • 2011-08-14
                • 2015-11-26
                • 2021-07-31
                • 1970-01-01
                • 2019-04-03
                • 1970-01-01
                • 2013-03-07
                相关资源
                最近更新 更多