Android Studio - Push failed: fatal: Не удалось прочитать из удаленного репозитория
У меня есть проект git в Android Studio и удаленный сервер BitBucket, и я изменил его, чтобы использовать SSH вместо HTTPS. Я могу заставить все работать с использованием Atlassian SourceTree, но в Android Studio каждый раз, когда я пытаюсь продвинуть проект, он говорит
Push failed: fatal: Не удалось прочитать из удаленного репозитория.
Кто-нибудь знает, что может произойти?
Ответы
Ответ 1
Это, вероятно, проблема Intellij. Ваш ключ управляется изначально ssh, а Intellij имеет собственную программу ssh.
Перейдите в настройки, выполните поиск git → ssh, затем выберите native
Как показано здесь: git с IntelliJ IDEA: не удалось прочитать из удаленного репозитория
Ответ 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
Это сработало в моем случае.