Android Studio - 推送失败:致命:无法从远程存储库读取

时间:2014-07-11 01:07:09

标签: git intellij-idea android-studio bitbucket

我在Android Studio上有一个git项目,在BitBucket上有一个遥控器,我把它改为使用SSH而不是HTTPS。我可以使用Atlassian的SourceTree使一切工作正常,但是每当我尝试推动项目时,它都会在Android Studio中显示

  

推送失败:致命:无法从远程存储库读取。

有没有人对可能发生的事情有所了解?

13 个答案:

答案 0 :(得分:73)

这可能是一个Intellij问题。您的密钥由ssh本地管理,Intellij拥有自己的ssh程序。

转到设置,搜索git-> ssh可执行文件,然后选择native

如下所示:git with IntelliJ IDEA: Could not read from remote repository

答案 1 :(得分:18)

转到设置>版本控制> Git的。确保SSH可执行文件设置为“Native。”

如果已经设置,请切换回“内置”,应用它,然后再次切换回“原生”。

enter image description here

答案 2 :(得分:17)

在Android Studio或IntelliJ中有两种方式进行Git SSH验证,通过以下方式进行更改: 设置 - 版本控制 - Git - SSH可执行 - “内置”或“本机”

  1. 内置:表示使用Git内置的ssh密钥对进行身份验证。 你可以通过
    生成它 ssh-keygen -t rsa
    默认保存的路径是“〜/ .ssh / id_rsa”“〜/ .ssh / id_rsa.pub”。 您应该在BitBucket帐户中添加公钥。 路径如:管理帐户 - SSH密钥 - 添加密钥
  2. Native:表示使用本机存储库托管服务生成的ssh对,例如BitBucket或GitHub,它通常在服务帐户中自动添加。例如在GitHub中。它生成了一对SSH密钥,“〜/ .ssh / github_rsa.pub”和“〜/ .ssh / github_rsa”,并且可以通过GitHub GUI在我的帐户中自动添加公钥。因此,将SSH可执行文件更改为“Native”可能是一种简单的方法。
  3. 无论如何,您可以在存储库托管服务中添加正确的公钥后使用这两种方式。

答案 3 :(得分:6)

尽管我的SSH可执行文件设置为Native,但由于设置了SSH密钥文件的密码,因此出现了此错误。

我还没有找到如何在Android Studio中指定密码的方法,但是还有另一个解决方案,您可以删除密码,可以使用$ ssh-keygen -p来完成。然后只需确认文件位置,输入您的旧密码,然后将新密码留空即可。

来自How do I remove the passphrase for the SSH key without having to create a new key?

答案 4 :(得分:1)

转到github.com并打开您的存储库并复制USE HTTPS网址 转到Android项目目录。在.git文件夹中搜索配置文件。

在配置文件中更改您从github.com(使用https)复制的URL与之前的URL。 保存配置文件并再次按下。 这对我有用。

答案 5 :(得分:1)

我在Android Studio 3.1中遇到了类似的问题

我按照此处的建议将首选项>版本控制> Git> SSH可执行文件内置更改为本机,但这并没有帮助

然后,我将Android Studio升级到3.2,然后切换回内置。它解决了我的问题。

答案 6 :(得分:1)

在切换到Android Studio 3.6之后,遇到了这个问题,它被转换为IDEA 2019

在我的情况下,以下解决方案开箱即用:

  1. 帮助-查找操作-注册表...
  2. 找到git.use.builtin.ssh并将其启用

答案 7 :(得分:0)

我遇到了同样的问题。事实证明,如何运行Android Studio。如果使用终端或sth的普通权限运行它,它就无法读取它必须的本地文件以便推送存储库。

解决方案可能只是重启Android Studio,其权限比目前更多。

答案 8 :(得分:0)

我自己跑过去,发现现有的答案有点不完整。

tl;博士:将Android Studio / IntelliJ的SSH客户端从内置转换为本机可能会为您解决问题(这对我而言)。

Android Studio(实际上是专门的IntelliJ IDEA)附带自己的内置SSH客户端,但如果您愿意,可以切换到本机(依赖于平台/操作系统)。您可以通过打开Android Studio选项,搜索“git”并在SSH可执行文件下拉列表中选择“native”来更改此项。

在我的情况下,我无法通过Android Studio推送到BitBucket,但git push工作正常。切换到本机(OSX SSH,在我的情况下)解决了这个问题 - 现在我可以从Android Studio推送到BitBucket。

其他答案触及了这个主题,但似乎在SSH可执行文件和它们使用的密钥之间存在一些混淆。

在SSH可执行文件下的每个Android Studio帮助:

  • 内置:选择此选项以使用IntelliJ IDEA提供的实现。
  • Native:选择此选项以使用本机实现。

答案 9 :(得分:0)

我遇到了这个问题,最后我解决了这个问题。设置有两个重点: 在android studio中:File-Settings-GitHub:不要选择"使用ssh"克隆git存储库 在android studio中:File-Settings-Git:选择"内置" for" SSH可执行文件"

对于我已经在GitHub帐户中拥有的SSH,是我在android studio中的那个,我忘记了如何在android studio中找到SSH,但你可以通过其他方式找到它< / p>

答案 10 :(得分:0)

如果将首选项>版本控制> Git> SSH可执行文件从内置更改为本机不起作用,请尝试取消选中首选项>版本控制> GitHub>使用ssh克隆git存储库 CHECK IT

答案 11 :(得分:0)

为我解决这个问题的是进入设置 > 版本控制 > Git 并选中“使用凭证助手”。我最近下载了 Android Studio 的 Canary 版本并选择不迁移我的设置,因此在我的发布版本上检查的这个小设置不再在 Canary 版本上检查。

答案 12 :(得分:-3)

重新生成您的公共ssh密钥并将其添加到您的git hub存储库。

ssh-keygen -t rsa

它适用于我的情况。