Устранение неполадок git push — запрашивает пользователя / проход

#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. Вот хорошее объяснение:

https://help.github.com/articles/set-up-git

Ответ №7:

Может быть, это поможет кому-то вроде меня.

Пожалуйста, найдите официальную статью Git о кэшировании вашего пароля

введите описание изображения здесь

Ссылка:https://help.github.com/en/articles/caching-your-github-password-in-git

Команды:

  1. Настройте Git на использование кэша памяти учетных данных

    > git config --global credential.helper cache

  2. Измените время ожидания кэша по умолчанию

    > git config --global credential.helper 'cache --timeout=3600'

Комментарии:

1. Это кэширует имя пользователя и пароль, но все равно придется вводить оба, когда срок действия кэша истечет.