我已经使用GitHub有一段时间了,git添加、git提交和git推送都没问题,到目前为止还没有任何问题。突然我出现了一个错误

fatal:认证失败

在终端中,我克隆了一个存储库,处理了一个文件,然后我使用git add将文件添加到提交日志中,当我做git提交时,它工作得很好。最后,git push请求用户名和密码。我输入正确,每次我这样做,它都会显示相同的错误。

这个问题的原因是什么,我该如何解决它?

.git/config的内容如下:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############

当前回答

快速的GUI方法是:

首先通过create app access token生成一个访问令牌。 然后进入sourceTree的设置(放在Source树的关闭按钮下) 将出现一个名为“Repository Settings”的提示。 使用https://USER_NAME:ACCESS_TOKEN@bitbucket.org/REPO_NAME/PROJECT_NAME.git添加/编辑您的存储库路径

或为github帐户

https://username:access-token@github.com/username/repo.git

这里要提到的唯一变化是将上述共享创建应用程序访问令牌链接生成的附加accessToken添加到现有路径url中。

其他回答

我尝试了令牌验证方法,让它工作~3次,浪费了大约2个小时的时间。出于某种原因,它在我们公司不太适用。

我的解决方案是将身份验证方法从HTTPS改为SSH。这是一个Github指南(https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)。

创建SSH密钥后,请记住更改SSH地址来源:

git remote add origin git@github.com:user/repo.git

我认为由于某种原因,GitHub期望URL没有子域www。当我使用(例如)

git remote set-url origin https://www.github.com/name/repo.git

它给出了以下信息:

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

然而,如果我使用

git remote set-url origin https://github.com/name/repo.git

它工作得非常好。这对我来说没什么意义…但我想记得不要把www放在GitHub存储库的远程URL中。

另外请注意,GitHub存储库网页上提供的克隆url不包括www。

这是我的解决方案,我认为它适用于Azure, Github或Git。如果您的身份验证失败可能是由于4个可能的原因—您启用了2FA,您更改了密码,您更改了用户名或回购密码是动态的)—

无论发生了什么,你都应该遵循以下四个步骤:

去任何你的回购位于点击“克隆”按钮。 应该有一个HTTPS的方式,下面点击“生成git凭证”按钮。这必须给你一个新密码。(Azure回购图)

在cmd中进入你的repo并输入: git push -u origin your-Branch-Name (如果需要)如果没有定义源url路由,只需输入下面的命令,然后再次执行步骤3: Git远程添加origin https://my-git-url git push命令后,它将询问您的凭据。使用已经在回购中生成的凭证。

也许您最近更改了Git帐户的密码。 你可以使用-u选项来尝试git的push line:

git push -u origin branch_name_that_you_want_to_push

执行上述命令后,它将要求输入密码。提供更新后的密码。

在Windows上,如果您在输入正确的密码和用户名时发现身份验证错误问题,那么这是Git的问题。要解决此问题,在机器上安装Git时,取消选中“启用Git凭据管理器”选项。