Подтвердить что ты не робот

Android Studio - Push failed: fatal: Не удалось прочитать из удаленного репозитория

У меня есть проект git в Android Studio и удаленный сервер BitBucket, и я изменил его, чтобы использовать SSH вместо HTTPS. Я могу заставить все работать с использованием Atlassian SourceTree, но в Android Studio каждый раз, когда я пытаюсь продвинуть проект, он говорит

Push failed: fatal: Не удалось прочитать из удаленного репозитория.

Кто-нибудь знает, что может произойти?

4b9b3361

Ответ 2

Перейдите в Настройки> Контроль версий> Git. Убедитесь, что для исполняемого файла SSH установлено значение "Native".

Если он уже установлен, переключитесь обратно на "Встроенный", примените его, а затем снова переключитесь на "Собственный".

enter image description here

Ответ 3

Существует два способа проверки Git SSH в Android Studio или IntelliJ, меняющихся через: настройки - Контроль версий - Git - SSH excuteable - "Встроенный" или "Родной"

  • Встроенный: означает использование пары ключей ssh, встроенной в Git для аутентификации. вы можете создать его с помощью ssh-keygen -t rsa
    по умолчанию сохраненный путь "~/.ssh/id_rsa" и "~/.ssh/id_rsa.pub" . Вы должны добавить открытый ключ в свою учетную запись BitBucket. путь: управление учетной записью - ключи SSH - добавление ключей
  • Native: означает использование ssh-пары, созданной службой хостинга на основе собственного репозитория, например BitBucket или GitHub, которая часто автоматически добавляется в учетную запись службы. Например, в GitHub. Он сгенерировал пару ключей SSH, "~/.ssh/github_rsa.pub" и "~/.ssh/github_rsa", и открытый ключ был автоматически добавлен в мою учетную запись через графический интерфейс GitHub. Поэтому изменить исполняемый файл SSH на "Родной" можно было бы простым способом.

В любом случае, вы можете использовать оба способа после того, как вы добавите правильный публичный ключ в свою acoount в службе хостинга репозитория.

Ответ 4

Несмотря на то, что мой SSH-исполняемый файл был установлен на Native я получал эту ошибку, потому что я установил пароль для файла ключей SSH.

Я не нашел способ указать пароль в Android Studio, но есть другое решение, вы можете удалить пароль, что можно сделать с помощью $ ssh-keygen -p. Затем просто подтвердите местоположение файла, введите старый пароль и оставьте новый пароль пустым.

Взято из Как удалить ключевую фразу для ключа SSH без необходимости создания нового ключа?

Ответ 5

У меня была похожая проблема в Android Studio 3.1

Я изменил Preferences> Version Control> Git> SSH исполняемый файл со встроенного на Native, как предложено здесь, но это не помогло.

Затем я обновил Android Studio до 3.2 и переключился обратно на встроенный. Это исправило проблему в моем случае.

Ответ 6

Перейдите на github.com и откройте свой репозиторий и скопируйте USE HTTPS url. Перейдите в каталог проекта Android. В папке .git найдите файл конфигурации.

В файле конфигурации смените URL, который вы скопировали с github.com (используйте https) с предыдущим URL. сохраните файл конфигурации и нажмите еще раз. Это сработало для меня.

Ответ 7

У меня такая же проблема. Оказывается, это имеет значение, как вы запускаете Android Studio. Если вы запускаете его с обычными привилегиями с терминала или sth, он не может читать локальные файлы, которые он должен использовать, чтобы выталкивать репозиторий.

Решение может просто состоять в том, чтобы перезапустить Android Studio с более привилегиями, чем в настоящее время.

Ответ 8

Я наткнулся на это сам и нашел, что существующие ответы были немного неполными.

tl; dr: Переключение Android Studio/IntelliJ SSH-клиента из встроенного в native может решить проблему для вас (это было для меня).

Android Studio (фактически специализированная IntelliJ IDEA) поставляется со своим встроенным SSH-клиентом, но при необходимости вы можете переключиться на родной (зависимый от платформы/ОС). Вы можете изменить это, открыв параметры Android Studio, найдите "git" и выберите "native" в раскрывающемся списке исполняемых файлов SSH.

В моем случае я не смог нажать BitBucket через Android Studio, но git push работал отлично. Переключение на native (OSX SSH, в моем случае) решило проблему - теперь я могу нажать на BitBucket из Android Studio.

Другие ответы затронули тему, но, похоже, было какое-то смешение между исполняемыми файлами SSH и ключами, которые они используют.

В приложении для Android Studio под управлением SSH Executable:

  • Встроенный: выберите этот вариант, чтобы использовать реализацию, предоставляемую IntelliJ IDEA.
  • Родной: выберите этот вариант, чтобы использовать встроенную реализацию.

Ответ 9

Я встретил эту проблему, и, наконец, я ее решил. И есть два важных момента для настройки: В андроид-студии: File-Settings-GitHub: не выбирать "Clone git репозитории с помощью ssh" В студии Android: Настройки файла- Git: выберите "Встроенный" для "SSH-исполняемого файла"

а для SSH, который у меня уже есть в аккаунте GitHub, есть тот, который у меня есть в студии Android, я забыл, как найти SSH в студии Android, но вы можете найти его другим способом

Ответ 10

Если изменение Preferences> Version Control> Git> SSH исполняемого файла со встроенного на Native не работает, то, пожалуйста, попробуйте снять флажок Preferences> Version Control> GitHub> clone git repositories, используя ssh. ПРОВЕРЬТЕ ИТ

Ответ 11

Восстановите свой открытый ключ ssh и добавьте его в репозиторий концентратора git.

ssh-keygen -t rsa

Это сработало в моем случае.