Bitbucket无法从代码库拉取/推送

44

所以基本上我有一个服务器,其中我设置了bitbucket git存储库。 我已经使用它几个月了,但现在当我尝试拉取时,我突然遇到以下错误:

ssh: Could not resolve hostname bitbucket.org: Name or service not known
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我百分百确定我已经正确设置了我的ssh密钥。

git remote -v
origin  git@bitbucket.org:marel/tshirtmafia.git (fetch)
origin  git@bitbucket.org:marel/tshirtmafia.git (push)
任何建议如何修复这个问题?如果您需要任何其他信息,请告诉我。

2
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Thilo
@Thilo 我注意到这个问题已经超过24小时了。 - Marijus
27个回答

37

这个问题是由于不正确的git配置引起的。在您的项目根文件夹中打开.git文件夹,并在config文件中找到以

url = git@bitbucket.org

开头的行。

很可能您在那里指定了协议并定义了url,例如:

url = ssh://git@bitbucket.org

删除ssh://即可解决问题。


我尝试了这个,但是没有成功,出现了以下错误:`$ git push fatal: 'git@bitbucket.org/myusername/my_project.git' does not appear to be a git repository fatal: Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.` - rld
3
这对我有用,但是这是否意味着在删除后它不再受SSH保护? - Ivo
嗨,有点晚了,但是无论如何,git默认会将基于电子邮件的链接视为ssh。它只期望主机而不是URL协议。 - szadrutsky
1
不是解决问题的正确方法,对我无效,出现了以下错误: fatal: 'git@***.****.com/xyz/abc.git' 似乎不是一个 git 存储库 fatal: 无法从远程存储库读取 - Harsh Phoujdar
我通过在同一文件中的pushurl配置中删除ssh://来解决了这个问题。 - Davide Carlier

35

4
如何做,请详细说明? - Abdul Ahad
3
这对我很有帮助。详细说明请见此链接 - Reece Kenney
我的树莓派出了问题,不得不更新我的/etc/dhcpcd.conf文件。 - QuintoViento
1
尽管我是自己找到了解决方案,而不是从这个答案中得到的,但它确实有效!让我认为这是一个 DNS 问题而不是 Git 的原因是我无法访问公司网站(这些网站在 Windows 主机上使用 VPN 访问,在 Ubuntu 客户机上使用 Git 时出现错误)。 - Eraklon
然后重新启动!运行得很好。谢谢。 - Ruslan Mavlyanov

10

将 bitbucket.org 添加到您的主机文件中

nano /etc/hosts

按照下面的示例将 bitbucket.org 添加到主机文件中

104.192.143.1   bitbucket.org

一个显示主机文件外观的截图

保存文件并退出。 Bitbucket 应该能够被解析。


你真是个救星!请注意,如果您在另一个IP上使用Bitbucket Server或任何其他版本控制系统,则需要相应更改IP。 - Tayyib Cankat
2
虽然这可能有效,但Bitbucket可以更改其IP地址,然后您会花费一个小时来查找为什么它无法正常工作,而不记得您在主机文件中进行了此更改。 - Samantha Adrichem

8
我不知道这个问题的确切原因。首先要做的是ping bitbucket.org。如果你得到了回应,那么请按照下面的步骤进行操作。
进入你仓库的.git文件夹,使用你喜欢的编辑器打开config文件,并将url值更改为如下所示。对我有用。
https://bitbucket.org/<username>/<repo>  -> https://<username>@bitbucket.org/<username>/<repo>

同样的步骤也可以解决ssh问题,只需添加用户名。

图片中展示了我的笔记库,我在这里保存所有的笔记。 enter image description here


1
这对我有效,但我不明白为什么会发生这种情况。今天之前我已经多次进行了git push,然后突然出现了这个问题。在我的git配置文件中,之前使用的是ssh://协议,然后我改成了https://协议。我只是从Bitbucket复制了一下,一切都正常工作了。感谢allsyed。 - rld
1
相同的步骤也可以解决ssh问题,只需添加用户名即可。您能否提供一个示例,例如https?因为我不确定它是否是我想象中的那样。 - wscourge
我的设置(机器,操作系统)现在已更改,没有示例。 - ALLSYED

6
一些答案提到编辑/etc/hosts,但这对我没有用。不过这引导我找到了解决方法。
当时我在全新的WSL/Ubuntu安装上,试图克隆我的仓库。我遇到了和问题发起人一样的错误信息。此外,当ping google.com时,我会得到类似的错误,但我可以正常地ping 8.8.8.8。
解决方案:编辑/etc/resolv.conf,并将默认的nameserver替换为8.8.8.8。

4
在Windows操作系统中,将以下条目(包括端口号22)添加到主机中。
104.192.143.1:22   bitbucket.org

主机文件位于 C:\Windows\System32\drivers\etc

3
错误消息表明存在DNS或网络问题。 如果您使用的是Linux系统,您可以调查一些网络命令的输出,例如 ifconfig, host bitbucket.org, 并遵循一些针对您特定环境的DNS问题的故障排除指南。

主机 bitbucket.org ;; 连接超时;无法到达任何服务器 ... 这种情况可能不应该发生,对吧? - Marijus
你要么有网络问题,要么你的网络正常,但你的DNS不工作。当我运行host bitbucket时,它告诉我IP地址是blah blah - 这是第一个:131.103.20.167。当我ping这个地址时,我得到回复。为了测试你的问题是什么,请尝试通过发出以下命令 ping 131.103.20.167 来ping上述IP。 - zayquan

3

我正在通过Windows 10上的Linux子系统使用git,只有来自@Saviour Dela的答案对我有效。 我遵循的过程如下:

  1. 从Windows命令提示符中使用ping bitbucket获取IP地址。
  2. 将IP地址添加到/etc/hosts文件中。

2

我在git push进行到一半时取消了,然后出现了这个问题。执行git pull && git fetch后问题得以解决。


2

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