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

Git Android Studio-推送失败:致命:无法从远程存储库读取,git,intellij-idea,android-studio,bitbucket,Git,Intellij Idea,Android Studio,Bitbucket,我在Android Studio上有一个git项目,在BitBucket上有一个远程项目,我把它改为使用SSH而不是HTTPS。我可以使用Atlassian的SourceTree让一切都正常工作,但在Android Studio中,每次我尝试推动项目时,它都会这么说 推送失败:致命:无法从远程存储库读取 ssh-keygen -t rsa 有人知道会发生什么事吗 重新生成公共ssh密钥并将其添加到git hub存储库中 ssh-keygen -t rsa 这在我的情况下起了作用。我也遇到了同

我在Android Studio上有一个git项目,在BitBucket上有一个远程项目,我把它改为使用SSH而不是HTTPS。我可以使用Atlassian的SourceTree让一切都正常工作,但在Android Studio中,每次我尝试推动项目时,它都会这么说

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

ssh-keygen -t rsa

有人知道会发生什么事吗

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

ssh-keygen -t rsa

这在我的情况下起了作用。

我也遇到了同样的问题。事实证明,如何运行Android Studio很重要。如果您使用终端或其他设备的正常权限运行它,它将无法读取为推送存储库而必须读取的本地文件


解决方案可能只是以比当前更多的权限重新启动Android Studio。

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

  • 内置:意味着使用内置于Git的ssh密钥对进行身份验证。 您可以通过
    ssh-keygen-t rsa

    默认保存的路径是“~/.ssh/id\u rsa”“~/.ssh/id\u rsa.pub”。 您应该在BitBucket帐户中添加公钥。 路径类似于:管理帐户-SSH密钥-添加密钥
  • 本机:意味着使用本机存储库托管服务(如BitBucket或GitHub)生成的ssh对,这通常是自动添加到服务帐户中的。例如在GitHub中。它生成了一对SSH密钥“~/.SSH/github\u rsa.pub”和“~/.SSH/github\u rsa”,公钥已通过github GUI自动添加到我的帐户中。因此,将SSH可执行文件更改为“本机”可能是一种简单的方法

  • 无论如何,在存储库托管服务中添加正确的公钥后,您可以同时使用这两种方法。

    我自己也遇到过这个问题,发现现有的答案有点不完整

    tl;dr:将Android Studio/IntelliJ的SSH客户端从内置切换到本机可能会为您解决这个问题(对我来说确实如此)

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

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

    其他答案涉及到这个问题,但SSH可执行文件和它们使用的密钥之间似乎有一些混淆

    根据SSH可执行文件下的Android Studio帮助:

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

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

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


        如图所示:

        我遇到了这个问题,最后我解决了它。设置有两个要点: 在androidstudio:File Settings中,GitHub:not选择“Clone git repositories using ssh” 在androidstudio:filesettings中,Git:选择“内置”作为“SSH可执行文件”


        对于我已经在GitHub帐户中拥有的SSH,就是我在android studio中拥有的SSH,我忘记了如何在android studio中找到SSH,但您可以通过另一种方式找到它

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

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


        转到github.com,打开存储库并使用HTTPS url复制 转到Android项目目录。在.git文件夹中搜索配置文件

        在配置文件中,将从github.com复制的url(使用https)与以前的url一起更改。 保存配置文件并再次推送。
        这对我来说很有效。

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

        我将首选项>版本控制>Git>SSH可执行文件内置更改为本机,正如这里所建议的那样,但没有任何帮助


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

        尽管我的SSH可执行文件被设置为
        本机
        ,但我收到了这个错误,因为我已经为SSH密钥文件设置了密码

        我还没有找到如何在Android studio中指定密码的方法,但还有另一个解决方案,您可以通过
        $ssh keygen-p
        删除密码。然后确认文件位置,输入旧密码并将新密码留空


        取自

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

        在切换到Android Studio 3.6后,在引擎盖下被撞到IDEA 2019时,出现了问题

        在我的案例中,以下解决方案是开箱即用的:

      • 帮助-查找操作-注册表
      • 找到git.use.builtin.ssh并启用它

      • 您可能需要再次添加远程。当Git不知道推送到何处时,会出现此错误消息。请查看类似问题:我认为最上面的答案应该对您有所帮助。但我的配置文件中有远程url,SourceTree可以进行推送…嗯…远程有正确的SSH url,而不是旧的HTTPS url?我尝试了搜索为了这个我