如何更新 Git 的密码?

969

我正在使用BitBucket、Xcode和Git进行版本控制,最近我更改了所有密码(感谢Adobe!)。

毫不意外的是,我无法将本地提交推送到BitBucket存储库(身份验证失败,'https://______.git'),但我忘记了如何在我的iMac上更新缓存密码。虽然我认为这应该非常简单,但我在Google或Stack Overflow上找不到它...


6
可能会存储在你的OS X _keychain_(密码存储)中。 - knittl
2
如果您的用户名/密码只是与git url一起存储,则可能在您的.git/config文件中。 - Erik Kerber
3
https://help.github.com/articles/updating-credentials-from-the-osx-keychain/ - D.W.
如果您使用的是 macOS 并且其他方法都无效,请尝试在“钥匙串访问”应用程序中更新“Internet Password”github.com条目。然后将新的个人访问令牌(PAT)设置为密码。 - gusa
35个回答

36
在我的Windows机器上,我尝试了@nzrytmn的解决方案,即: 控制面板>搜索凭据>选择“管理凭据”>修改与我的用户名对应的git选项类别下的新凭据。 然后, 删除当前密码:
git config --global --unset user.password

添加了新密码:

git config --global --add user.password "new_password"

而且对我来说它起作用了。


3
对我没有用。我已经按照这里描述的步骤解决了问题:https://cmatskas.com/how-to-update-your-git-credentials-on-windows/ - vlad
不起作用,亲爱的,尝试了两次。 - Kamlesh
5
警告:这会将未加密的密码存储在 ~/.gitconfig 文件中。 - radzimir

31
如果您的凭证被存储在凭证助手中,删除特定主机上保留的密码的便携式方法是调用git credential reject命令:
$ git credential reject
protocol=https
host=bitbucket.org
⏎
或者
$ git credential reject
url=https://bitbucket.org
⏎

接下来,要输入您的新密码,请键入git fetch


3
警告:无效的凭证行:? 致命错误:无法从标准输入读取凭证 - pinei
3
这个方法在我使用Windows 10的时候有效,其他方法则不行。这很可能是正确答案。 - radzimir
2
它也适用于Mac。 - MADHAIYAN M
事实上,这是所有答案中最简洁且正确的,应该是这个问题的主要答案。 在Linux下也适用于我。 谢谢。 - Mario
在Linux Mint中工作。拒绝凭据,它会要求您输入新的访问令牌。 - RuntimeException
参与了KDE的开发,谢谢! - Apollo3zehn

29

令牌认证

鉴于自2021年8月13日起实施的新的令牌认证要求,这可能是您正在寻找的内容:

  1. 生成新的访问令牌
  2. 更新用于访问您的代码库的令牌:
    git remote remove origin
    git remote add origin https://[TOKEN]@github.com/[USER]/[REPOSITORY]
    git push
    

2
这个解决方案对我有用,上面的解决方案都没用,我想要明确一点,USER 不是您用于访问 GitHub 帐户的用户名,而是 REPO 的用户。 - Hanane
是的,这是唯一对我有效的解决方案。首先应该运行的一个命令是: git remote -v 这样就可以看到现有的[USER]和[REPO]参数。 - Neil Fraser
如果您的个人访问令牌名称为“token”,并且令牌值为“123”,则[TOKEN] = token:123。对于github.com/[USER]/[REPO],请复制指向您的存储库的URL - 在“https://”之后的所有内容。 - Ian Warburton
1
谢谢,兄弟,你帮我省了很多时间。 - undefined
谢谢,兄弟,你帮我省了很多时间。 - Mohammed Saber Mohammed

19
这个问题非常复杂,存在很多混淆。首先是MacOS和Win10之间的区别,然后还有不同的认证机制。
我将在此处提供一个综合的答案,并可能需要一些帮助。如果没有得到帮助,我将继续工作直到回答完成,但这需要时间。
Windows 10: |
|-- Run this command. You will be prompted on next push/pull to enter username and password:
|      git config --global credential.helper wincred (Thanks to @Andrew Pye)

`MacOS:

|
|-- 1. Using git config to store username and password:
|  git config --global --add user.password
|
|---- 1.1 first time entry
|  git config --global --add user.password <new_pass>
|
|---- 1.2 password update
|  git config --global --unset user.password
|  git config --global --add user.password <new_pass>
|
|-- 2. Using keychain:
|  git config --global credential.helper osxkeychain
|
|---- 2.1 first time entry
|  Terminal will ask you for the username and password. Just enter it, it will be 
|  stored in keychain from then on.
|
|---- 2.2 password update
|  Open keychain, delete the entry for the repository you are trying to use. 
|  (git remote -v will show you)
|  On next use of git push or something that needs permissions, git will ask for 
|  the credentials, as it can not find them in the keychain anymore.
`

我更新了你的格式,试图添加对Andrew Pye的引用,但没有找到相关内容。重新格式化Renhuais的评论:运行git config --global --unset user.password,然后运行git push origin master将会要求你输入用户名和密码。也把这个加入到答案中? - Bazer Con

18

这是我第一次推送到该代码库,因此没有定义HEAD

最简单的方法是:

git push -u origin master

然后它会提示输入密码,一旦您输入密码,它将自动保存,然后您就可以推送了。


如果我从本地推送到远程服务器,那么我需要使用哪个密码?这是我的远程服务器凭据密码还是其他密码? - Fawwad
@Fawwad 这是远程代码库的密码。 - Pritam Banerjee
3
我的远程服务器不是github.com。它是我安装Git的专用服务器。 - Fawwad
@Fawwad,无论你使用什么,都需要提供凭据以获得对你想要写入的存储库的写入访问权限。 - iheanyi
@DmitryKabanov 请阅读我如何重置密码的完整答案。 - Pritam Banerjee
显示剩余2条评论

16
若您使用GitHub并启用了双重认证,需要输入个人访问令牌来代替密码。
首先重置您的密码:
git config --global --unset user.password
接着,在GitHub上登录您的账户,在右上角点击“设置”,然后再点击“开发者设置”。生成一个个人访问令牌,并将其复制。
git push
终端将提示您输入用户名:请键入您的电子邮件地址。
在密码提示框中,键入个人访问令牌。

11

请在终端中执行以下步骤:

  1. 删除您的 Mac 中保存的当前密码

git config --global --unset user.password
  • 通过以下命令添加您的新密码,将“”替换为您的新密码:

  • git config --global --add user.password <new_pass>
    

    4
    这样,你的密码就会保存在历史记录中,任何运行历史命令的人都可以以纯文本形式看到它。为了防止这种情况,你可以在命令前添加一个额外的空格,或者在命令后使用正确的行 ID 运行命令 'history -d 1234'。 - Lavandysh

    10

    你可以在2个地方通过命令行更改密码,下面的内容将编辑凭据以连接存储库

    git config --edit 
    
    凭据也可以使用全局参数进行更改,例如下面的示例。
     git config --global --add user.password "XXXX"
    

    或者使用凭据助手设置

    git config --global credential.helper wincred
    

    但是如果您设置了存储库级别的凭据,则使用第一个命令。

    git config --edit
    

    9

    针对基于2021年8月13日的新规则,MacOS要使用密码令牌。

    我尝试了所有其他基于终端的解决方案,但都没有成功。

    1. 直接前往 钥匙串访问
    2. 搜索 github
    3. 右键单击所有与github相关的项目,包括 vs-code,
    4. 删除所有项目 enter image description here

    8

    在 Github 桌面版偏好设置中我的密码是正确的,但在 .git/config 文件中却是错误的。

    对我来说,唯一的有效解决方案是手动编辑此文件:.git/config

    该文件包含以下行:

    url = https://user:password@github.com/user/repo.git
    

    我想把密码改成一个更加安全的密码,因为原来的密码已经有些年头了。


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