Git Субмодуль - разрешение отклонено
Я не могу клонировать субмодуль, существующий в моем личном репозитории git. У меня есть доступ ко всему хранилищу,
Использовали приведенные ниже команды, но не работайте, пожалуйста, помогите. Как правильно клонировать подмодули в существующем хранилище?
djrecker$ git submodule update --init --recursive
Submodule 'Path' ([email protected]:Path) registered for path 'App'
Cloning into 'Path'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Ответы
Ответ 1
Я столкнулся с той же проблемой. Проблема была в вашем реестре github, вы можете использовать старый ключ ssh.
Вам нужно обновить текущий ключ ssh.
Steps involved are:
1. vim ~/.ssh/id_rsa.pub
2. copy the ssh key
3. Go to the github settings
4. Select the option ssh keys
5. Remove the old ssh keys not used anymore.
6. Add a new ssh key.
7. Try running the "git submodule update --recursive"
Это сработало для меня!
Ответ 2
У меня была эта проблема. В моем случае открытый ключ (~/.ssh/id_rsa) не был настроен на сервере должным образом.
Убедитесь, что вы получаете все подмодули:
Ссылка: Git update submodule recursive
# This must be called twice. Once for new and once for existing submodules.
git submodule update --init --recursive
git submodule update --recursive
Для диагностики проблем с разрешениями с вашим ключом:
Чтобы проверить детали ваших подмодулей
- Откройте
.gitmodules
в корневой папке проекта и убедитесь, что все выглядит хорошо. В соответствии с рекомендациями @VonC попробуйте их клонировать в отдельную папку. - Возможно, вы захотите переключить подмодули с использования SSH на HTTPS. Это позволит вам ввести имя пользователя и пароль. Но это может вызвать проблемы с вашими товарищами по команде и автоматизировать сборку. Сначала поговори с ними.
Ответ 3
В моем случае он жаловался на ту же проблему, когда я использовал обычную командную строку (Git CMD). Тогда я попробовал с Git Bash и больше никаких проблем.
Ответ 4
Интересно, что в аналогичном случае с использованием HTTPS-ссылки работало для меня.
Ответ 5
В моем случае проблема была вызвана консолью, которая не запрашивала у меня пароль. Решением было изменить консоль с CMDER на Gitbash. Когда я использовал CMDER, он не показывает окно пароля, которое вызвало проблему отказа в доступе.
Ответ 6
Была такая же проблема с подсистемой TortoiseGit/Windows для Linux/GitBash. Решение состоит в том, чтобы использовать аутентификацию через агента (ключ) вместо пароля.
Для TortoiseGit:
- запустить Pageant
- добавь свой ключ
- введите пароль
- Меню TortoiseGit → обновление субмодуля...
(без показа клона git он запрашивает пароль и работает как задумано, но обновление git завершается с ошибкой)
Для WS4L:
$ eval 'ssh-agent -s'
$ chmod 600 /path/to/key
$ ssh-add /path/to/key
продолжить git submodule update
Ответ 7
Я создал подмодуль по ошибке, используя git init в родительской папке И в ее подпапке. Просто удалил папку .git и начал заново с git init в правильной родительской папке.
Ответ 8
Win10 + git bash терминал в VS Code. В моем случае я использовал git bash через VS Code. При использовании подмодулей в git появляется окно для ввода ключевой фразы для ключа. Bash через VSCode не появится. С помощью пункта контекстного меню Windows "Git Bash Here" в папке репозитория, как показано ниже: Контекстное меню "Захват экрана"
git submodule update
работает великолепно.