【问题标题】:Android Studio - Push failed: fatal: Could not read from remote repositoryAndroid Studio - 推送失败:致命:无法从远程存储库读取
【发布时间】:2014-09-01 13:06:18
【问题描述】:

我在 Android Studio 有一个 git 项目,在 BitBucket 有一个遥控器,我将其更改为使用 SSH 而不是 HTTPS。我可以使用 Atlassian 的 SourceTree 完成所有工作,但在 Android Studio 中,每次我尝试推送它说的项目时

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

有人知道会发生什么吗?

【问题讨论】:

  • 您可能需要再次添加遥控器。当 Git 不知道推送到哪里时,就会出现该错误消息。查看这个类似的问题:stackoverflow.com/questions/15409841/… 我认为最佳答案应该对您有所帮助。
  • 但是我的配置文件里面有remote url,SourceTree可以推送...
  • 嗯.. 并且远程有正确的 SSH url,而不是旧的 HTTPS url?
  • 我尝试搜索这个问题,但使用“IntelliJ”而不是“Android Studio”来获得更多结果,我发现:askubuntu.com/questions/436610/… 它建议使用本机 SSH 可执行文件而不是内置以便 IntelliJ(或 Android Studio)使用正确的 SSH 密钥。这个答案意味着您对 Android Studio 不要求您提供密钥的担忧是有道理的。
  • 我希望我能在这里给人们标记一个谷歌......

标签: git intellij-idea android-studio bitbucket


【解决方案1】:

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

ssh-keygen -t rsa

它在我的情况下有效。

【讨论】:

  • 我不知道为什么所有的缺点,但这实际上解决了我的问题
【解决方案2】:

我遇到了同样的问题。事实证明,如何运行 Android Studio 很重要。如果您从终端或某处以正常权限运行它,它就无法读取它为了推送存储库而必须读取的本地文件。

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

【讨论】:

  • 你是在 Windows 上运行它吗?
【解决方案3】:

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

  1. Built-in :表示使用 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”可能是一种简单的方法。

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

【讨论】:

  • 如果您选择内置:您可以参考@kid 的答案。重新生成您的公共 ssh 密钥并将其添加到您的 git hub 存储库。
    ssh-keygen -t rsa
    并且公共 ssh 密钥在 ~/.ssh/id_rsa.pub 中生成并粘贴给您git Hub 帐户。路径是
    帐户 - 设置 - SSH 密钥
【解决方案4】:

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

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

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

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

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

根据 SSH Executable 下的 Android Studio 帮助:

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

【讨论】:

    【解决方案5】:

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

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

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

    【讨论】:

    • 谢谢你,这在 OSx 上工作。通常,如果您在干净的机器上使用默认设置,例如首次安装 Intellij,但在我的情况下,该机器具有多用户登录,这可能会影响默认设置。
    • 这在我的情况下不起作用(对于 Android Studio 3.1)。请在下面查看我的答案。
    【解决方案6】:

    我遇到了这个问题,终于解决了。并且有两个重要的设置点: 在android studio中:File-Settings-GitHub:不要选择“Clone git repositories using ssh” 在android studio中:File-Settings-Git:为“SSH executable”选择“Built-in”

    而我在GitHub的账号里已经有的SSH,是我在android studio的那个,我忘了怎么在android studio中找到SSH,但是你可以通过其他方式找到它

    【讨论】:

      【解决方案7】:

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

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

      【讨论】:

      • 这在我的情况下不起作用(对于 Android Studio 3.1)。请看下面我的回答。
      • 对于那些不起作用,也许您想在终端中检查您当前的 git 可执行文件:$: which git 指向可执行文件并在 android 上替换它在我的情况下,这适用于 AS 3.2.1 @AlexanderPoleschuk
      • @mochadwi 谢谢。升级到 Android Studio 3.2 后,我的问题得到了解决。
      【解决方案8】:

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

      在您从 github.com(使用 https)复制的配置文件更改 url 和以前的 url。 保存配置文件并再次推送。 这对我有用。

      【讨论】:

        【解决方案9】:

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

        我按照此处的建议将 Preferences > Version Control > Git > SSH executableBuilt-in 更改为 Native ,但没有帮助.

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

        【讨论】:

        • 很高兴它为您工作。最终切换成功了,这就是建议:)
        • 也许吧,但我不确定 :-) 我曾几次切换到 Native,然后又切换回 Built-in。直到我升级到 Android Studio 3.2,它才起作用。还是谢谢。
        【解决方案10】:

        尽管我的 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?

        【讨论】:

        • 遵循这个,但我没有重置密码,而是再次将其设置为相同的密码。这样做的行为导致 Android Studio 在我下一次推送时在弹出窗口中提示我输入 SSH 密码……然后一切都恢复了。
        【解决方案11】:

        如果将 Preferences > Version Control > Git > SSH 可执行文件从 Built-in 更改为 Native 不起作用,请尝试取消选中 Preferences > Version Control > GitHub>使用 ssh 克隆 git 存储库 CHECK IT

        【讨论】:

          【解决方案12】:

          在切换到 Android Studio 3.6 后遇到问题,但在后台遇到了 IDEA 2019

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

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

          【讨论】:

            【解决方案13】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2015-11-21
              • 2012-11-10
              • 2019-11-11
              • 2019-07-03
              • 2015-10-31
              • 2015-01-19
              • 2020-09-14
              • 1970-01-01
              相关资源
              最近更新 更多