"git push origin MyBranchName" 报错 "HTTP Basic: Access denied"

7

我刚开始学习Git(刚刚两天)。我正在尝试创建一个项目,以练习我从这里学到的基本命令。

目前为止:

  • [成功] 创建了一个新的公共git项目(因为我之前尝试过私有和内部的项目,但是我无法克隆它,我不知道为什么)。在这里
  • 向项目中添加了一个README.md文件。
  • [成功] 创建了一个名为develop的新分支。
  • [成功] 在我的本地文件夹C:\gitprojects中,使用以下命令设置全局user.nameuser.email

    • git config --global user.name <我的用户名>
    • git config --global user.email <我的电子邮件>
  • [成功] 使用命令git clone https://flamedenise19@gitlab.com/flamedenise19/speedtyping.git将项目克隆到我的本地文件夹C:\gitprojects中。

  • [成功] 使用命令git checkout -b "develop"创建了一个本地分支。
  • [成功] 在本地根文件夹上手动添加了一个新文件test.txt以进行测试推送。
  • [成功] 使用命令git commit -m "adds test.txt"提交了新文件。
  • [尝试中] 使用命令git push origin develop推送提交。

现在,我卡在了push这一步。在输入git push origin develop后,会弹出一个新窗口,要求输入我的凭据(请参见下面的屏幕截图):

enter image description here

于是我输入了我的凭据(与我登录gitlab.com时使用的完全相同的用户名和密码),但是之后,我收到了这个错误(请参见下面的屏幕截图):

remote: HTTP Basic: Access denied
fatal: Authentication failed for 'https://gitlab.com/flamedenise19/speedtyping.git/'

enter image description here

问题:

  • 即使我输入正确的用户名和密码,为什么无法成功推送?我是否遗漏了什么步骤或者在操作过程中犯了错误?
  • 有没有办法去掉每次推送时都要输入我的凭证信息的步骤?

请帮忙解答。

注意:我看到了这篇文章,里面提到了Tortoise。是否使用Git必须始终使用Tortoise呢?

一些背景信息:

我的帐户已经禁用了双重认证(请参见下面的屏幕截图):

enter image description here


你正在输入GitLab身份验证吗? - Gohel Dhaval
此外,如果您没有从仪表板创建项目,它也会被拒绝。 - Tatsuyuki Ishi
@TatsuyukiIshi 你指的是哪个仪表板?我是在 https://gitlab.com/projects/new 上创建了这个项目(通过点击我的个人资料图像左侧的“+”图标),然后在本地克隆了它。这样创建项目的方式有问题吗? - ITWitch
3个回答

3
如果是在Windows操作系统上,前往凭据管理器(Credential Manager),选择Windows凭据,在通用凭据下删除相关条目。
然后再次尝试连接。这一次,应该会提示正确的用户名和密码。

3

通过解决这个问题,我自己进行了一些挖掘,发现问题很可能来自凭据管理器。 由于我的 Gitlab 帐户是新的,因此没有 ssh 密钥,而使用用户名和密码也无法正常工作。但是,相同的设置在 GitHub 上运行正常。卸载 git 并重新安装时,无需凭据管理器即可正常工作。


2
这是我的想法:
  • 尝试在Git Bash上运行它是否有效
  • 您是否已经向您的帐户添加了ssh密钥?如果是,请删除它并重试。如果没有,请添加一个并尝试使用ssh网址。
  • 您不一定需要Tortoise Git,但它可能也可以解决您的问题
  • 尝试重新安装Git而不安装“Git凭据管理器”
当您解决推送问题后,您还将能够在私有或内部时克隆它。

我在设置中找不到任何与我的帐户相关的SSH密钥。然而,在项目本身中,除了HTTP之外还有SSH。我没有添加它,它只是在我创建项目时自动生成的。此外,我没有看到任何选项可以让我删除它。 - ITWitch
我尝试通过Git Bash进行推送,但错误仍然相同。 - ITWitch
我也尝试了从本地删除所有内容,然后使用SSH克隆项目(git clone git@gitlab.com:flamedenise19/speedtyping.git),但是它给了我这个错误:Permission denied (publickey). Fatal: Could not read from remote repository. - ITWitch
等等...我改正了!我的账户里确实有一个SSH密钥。这可能是在我还在以前的公司时添加的(尽管我不记得自己添加过,因为我也不知道怎么添加)。无论如何,我删除了SSH密钥,然后重新安装了Git - 这次取消选中“Git凭据管理器 for Windows”。它起作用了!你的第一和第三个想法对我有用。谢谢。 - ITWitch

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