Git запрашивает имя пользователя каждый раз, когда я нажимаю

263

Всякий раз, когда я пытаюсь вставить свой репо, git запрашивает оба username & password.

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

Итак, как я могу настроить git так, чтобы он не запрашивал username для каждого git push.

Я новичок в Linux, но IIRC в windows git push только запрашивает пароль.

Показать ещё 6 комментариев
Теги:
github

13 ответов

484
Лучший ответ

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

$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>

Также я предлагаю вам прочитать $ git help credentials

  • 24
    Помог мне, спасибо! Насколько безопасно хранить пароли таким образом?
  • 130
    Предупреждение, в этом методе нет защиты. Ваш пароль хранится в виде открытого текста.
Показать ещё 9 комментариев
89

Вы можете выполнить это в файле .git/config вашего локального репозитория. Этот файл содержит раздел под названием 'remote' с записью, называемой "url". Запись 'url' должна содержать ссылку https репозитория, о котором вы говорите.

Когда вы префикс host 'url' своим именем пользователя, git больше не запрашивает ваше имя пользователя. Вот пример:

url = https://[email protected]
  • 4
    Если вы используете специальные символы в имени пользователя или pw, вам следует их избегать. Смотрите en.wikipedia.org/wiki/Percent-escape для правильных escape-символов. например, "! @ #" [без кавычек] будет заменено на "% 21% 40% 23". Смотрите также ответ "Даниэль Лерч" ниже
  • 1
    Другие люди, работающие в том же хранилище, увидят мое имя пользователя?
Показать ещё 5 комментариев
44

Постоянная аутентификация с репозиториями Git

Запустите следующую команду для включения кэширования учетных данных:

$ git config credential.helper store
$ git push https://github.com/repo.git

Username for 'https://github.com': <USERNAME>
Password for 'https://[email protected]': <PASSWORD>

Использование также должно указывать кеширование expire

git config --global credential.helper 'cache --timeout 7200'

После включения кэширования учетных данных он будет кэшироваться для 7200 секунд (2 часа).


Чтение учетных данных Документы

$ git help credentials
  • 4
    Кэширование истекает, решите, чего я пытаюсь достичь.
  • 0
    Я установил тайм-аут на 7200. Но потом я решил установить его на 5 для тестирования. Поэтому я установил его на 5, но потом, когда я попытался нажать еще раз через 30 секунд, но меня не спросили имя пользователя или пароль.
Показать ещё 4 комментария
15

Если вы используете https вместо ssh, вы можете редактировать "url" в .git/config, как говорит user701648, но если вы хотите, вы также можете добавить пароль:

url = https://username:[email protected]
  • 0
    Что делать, если @ включен в мой пароль? url = https://username:abc@[email protected] Это дает мне ошибку, которая Could not resolve host: @[email protected]
  • 0
    Часть username кажется, игнорируется, когда сервер перенаправляет (например, с FOO на FOO.git).
13

Вы можете указать свое имя пользователя для всех репозиториев на данном сайте, добавив в конфигурационный файл Git что-то вроде следующего. Вы захотите изменить " https://example.com" и "я" на фактический URL-адрес и ваше фактическое имя пользователя.

[credential "https://example.com"]
    username = me

(Это непосредственно из "git справки" )

10

Самый простой способ найти эту команду:

git config --global credential.https://github.com.username <your_username>

Это работает на сайте по базе сайта и изменяет глобальную конфигурацию git.

Чтобы увидеть изменения, используйте:

git config --global --edit
  • 0
    По какой-то причине это был единственный метод, который работал для меня. Спасибо!
  • 0
    этот метод безопасен? пароль github хранится только на локальном компьютере и не передается на github?
Показать ещё 3 комментария
7

Добавьте новые ключи SSH, как описано в в этой статье о GitHub.

Если Git все еще запрашивает у вас имя пользователя и пароль, попробуйте изменить https://github.com/ на [email protected]: в удаленном URL-адресе:

$ git config remote.origin.url 
https://github.com/dir/repo.git

$ git config remote.origin.url "[email protected]:dir/repo.git"
  • 6
    Это должен быть правильный ответ! Сохранение ваших учетных данных невероятно небезопасно. Если у меня есть ключ SSH, он запрашивает мои учетные данные только потому, что у меня нет правильного URL, как указано здесь.
  • 0
    или вы можете использовать git config remote.origin.url "ssh://git@yourRepoHost/yourRepoName.git"
Показать ещё 1 комментарий
4

Убедитесь, что вы используете SSH вместо http. Проверьте этот ответ SO.

  • 3
    Но мне пришлось использовать http потому что в моем университете ssh заблокирован отделом sys-admin.
  • 0
    Тогда, возможно, эта ссылка поможет вам.
Показать ещё 1 комментарий
1

Изменение клонированных операций репо:

git remote set-url origin [email protected]:gitusername/projectname.git

Использование кэшированных учетных данных работает и установка периода таймаута делает вещи менее раздражающими. Если вы используете помощник учетных данных Windows, это должен быть самый простой метод (особенно если SSH заблокирован).

  • 0
    Это правильный ответ для GitHub (который конкретно задает вопрос ... (не уверен, почему вы получили отрицательное голосование).
  • 0
    Дело в том, что использование SSH
1

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

$ git config --global credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
0

Чтобы избежать ввода имени пользователя, но все же вам будет предложено ввести пароль, вы можете просто клонировать ваш репозиторий, включая имя пользователя:

git clone [email protected]/my_repo.git
0
  • $git config credential.helper store

  • $git push/push https://github.com/xxx.git

  • Затем введите свое имя пользователя и пароль.

  • Готово
  • 0
    Это не git push/push https://github.com/xxx.git это должен быть git push https://github.com/xxx.git
0

Если вы используете версию SSH, у вас не будет проблем с паролями. Только один раз вы создаете ключ SSH, чтобы сообщить git, что этот ПК будет работать с этой учетной записью github и никогда больше не спрашивать меня о каком-либо доступе (для этого ПК).

Как создать SSH для Github

Ещё вопросы

Сообщество Overcoder
Наверх
Меню