#git #github
#git #github
Вопрос:
Я использую git на новом компьютере с git Linux. Когда я это делаю git push
, он запрашивает пользователя / пароль.
Я правильно настроил git, и фактически клонирование репозитория из github в новую папку работает отлично (используя мой открытый ключ, а не копию только для чтения). Когда я пытаюсь выполнить переход из предыдущего созданного мной клона в тот же репозиторий, мне предлагается ввести пользователя / проход.
Конечно, sshing в git@github.com работает, и я убедился, что мой открытый ключ настроен в github. Есть идеи, как продолжить отладку?
Ответ №1:
это происходит потому, что вы сделали
git clone https://github.com/username/repo
вместо
git clone git@github.com:username/repo.git
Комментарии:
1. иногда это не вариант!
Ответ №2:
Попробуйте следующее:
git remote set-источник URL-адреса [ваш URL-адрес git, такой как git@github.com:…/project.git ]
Комментарии:
1. После того, как я запускаю это, я получаю «Введите кодовую фразу для ключа ‘/ u /.ssh / id_rsa’: «пароль для которого я знаю, но есть ли способ перестать запрашивать это на основе наличия файла ключа?
2. Чтобы избежать ввода пароля для вашего ключа при каждом нажатии, попробуйте ssh-add . Вам потребуется запустить ssh-agent , чтобы добавить ключи к вашему SSH-агенту. Простая справочная страница здесь
3. Фух, ты тот человек, который на самом деле дал решение, вместо того, чтобы просто сказать, в чем проблема!
4. Я сделал это, и он все еще запрашивает имя пользователя. Может работать только с определенными URL.
Ответ №3:
Что вы подразумеваете под предыдущим репозиторием? Проверьте URL источника из .git/config
файла предыдущего репозитория. Если вы клонировали с использованием http, он запросит пользователя / проход.
Комментарии:
1. Вы правы, проблема заключалась в URL-адресе HTTP. Под «предыдущим репозиторием» я имел в виду предыдущий клон того же репозитория.
Ответ №4:
если ваш URL-адрес репозитория: https://github.com/abc/xyz.git
задайте URL из командной строки как: git remote set-url origin git@github.com:abc/xyz.git
Заменить https://github.com/
на git@github.com:
Комментарии:
1. но не в том случае, если репозиторий не поддерживает ssh proto
Ответ №5:
По моему опыту, существует три случая
1. git remote set-url github(remote repo name) https://github.com/id/a.git
it asks ID/Passwd
2. git remote set-url github https://id@github.com/id/a.git
it only asks Passwd
3. git remote set-url github git://github.com:id/a.git
if you don't have a permission, it complains. So I can't use this for public server of github
все команды записываются в «.git/config»
Комментарии:
1. Исправлено, что в моем HTTPS раньше отсутствовало имя пользователя @github.com
Ответ №6:
для Mac, если у вас git 1.7.10 , для кэширования паролей необходимо использовать учетные данные-osxkeychain. Вот хорошее объяснение:
Ответ №7:
Может быть, это поможет кому-то вроде меня.
Пожалуйста, найдите официальную статью Git о кэшировании вашего пароля
Ссылка:https://help.github.com/en/articles/caching-your-github-password-in-git
Команды:
-
Настройте Git на использование кэша памяти учетных данных
> git config --global credential.helper cache
-
Измените время ожидания кэша по умолчанию
> git config --global credential.helper 'cache --timeout=3600'
Комментарии:
1. Это кэширует имя пользователя и пароль, но все равно придется вводить оба, когда срок действия кэша истечет.