Вопрос Как я могу убедиться, что Git не спрашивает у меня имя пользователя и пароль GitHub?


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

Я пробовал инструкции по адрес электронной почты в Git, а именно настроить Git-переменные github.user и github.token, но это не имеет никакого значения.

Я не понимаю, почему это происходит.


158
2017-10-14 17:17


происхождения


Вам необходимо кэшировать пароль: help.github.com/articles/set-up-git#password-caching - Piotr Usewicz


ответы:


Вам нужно настроить ssh-agent, для которого вам нужно только один раз выполнить проверку подлинности. Видеть этот ответ над SO для того, чтобы сделать.


27
2017-10-14 17:28



Но это решение для фраз ssh-family. Проблема в том, что git использует «git push», который не вызывает ssh-agent, я полагаю. (Я уже это сделал, поэтому я знаю, что это не работает). - picardo
@picardo: Я сделал это, и он действительно работает. - Daenyth


Сегодня у меня была аналогичная проблема: я повесил вещи в своей рабочей копии, поэтому решил переименовать каталог и снова клонировать мой проект из github. Но после этого мне пришлось ввести свой пароль, чтобы выполнить любой запрос pull / push, вместо того, чтобы вводить кодовую фразу только один раз, как я привык.

Это было потому, что сегодня я использовал протокол https для клонирования проекта! Чтобы проверить, какой протокол вы используете, просто запустите

git config -l

и посмотрите на строку, начинающуюся с 'remote.origin.url'.

Для переключения протоколов:

git config remote.origin.url git@github.com:the_repository_username/your_project.git

the_repository_username а также your_project следует заменить соответствующим именем репозитория и владельцем этого репозитория. Имя пользователя будет вашим, если у вас есть репозиторий или имя пользователя владельца репозитория иначе.


205
2017-08-08 22:36



Это сработало для меня. Одно дело, что url не содержит мое имя пользователя, а адрес репо, как он отображается в github: git@github.com:some-user/repo-name.git - B Seven
Примечание: Google привел меня сюда. У меня была remote.origin.url установлен на https-метод и даже не заметил, что https против ssh методы. Этот URL помог мне увидеть очевидное: help.github.com/articles/... - Chris K
Есть ли способ для ввода пароля? - zishe
Q для тех, у кого есть знание git: Любая разница (или предпочтение) между git config remote.origin.url ... использованные выше, vs. git remote set-url origin ...? - Daryn
Я не мог понять, как удалить неправильное происхождение. Ответ: git remote rm origin - Vacilando


Если вы используете HTTPS вместо SSH, вы можете выполнить следующее:

  1. Найдите свой удаленный URL (remote.origin.url) с помощью

    git config -l
    

    благодаря Серхио Морстабилини

  2. Ваш удаленный URL-адрес будет выглядеть следующим образом: https: // {USERNAME} @ github.com / {USERNAME} / {} REPONAME .git

  3. Выполните следующую команду:

    git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    

28
2017-12-03 22:40



мое имя пользователя содержит @, не работал для меня. - coding_idiot
Но если это не так (вам не нужно использовать свой адрес электронной почты), он отлично работает! Благодарю. - Killah
Если ваше имя пользователя содержит @, вам необходимо закодировать URL-адрес. meyerweb.com/eric/tools/dencoder - Tim Bodeit
Вы должны опустить свой пароль из соображений безопасности. - zygimantus
будьте осторожны, пароль будет сохранен в обычном тексте внутри .git/config файл! - Amro


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

Используя HTTPS, вы можете запретить git запрашивать ваше имя пользователя для пультов github со следующим:

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

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

git config --global credential.helper 'cache --timeout=28800'

Где 28800 - 8 часов. Я использую эту настройку для ввода моего пароля только один раз, когда я начинаю свой рабочий день.

После этого вы будете иметь эти записи внутри своего ~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

Источник:

http://git-scm.com/docs/git-credential-cache

http://git-scm.com/docs/git-config


24
2017-11-21 04:27



Оно работало завораживающе. Благодарю. - david euler


Если вы используете Windows с использованием HTTPS, попробуйте Магазин Git Credential - он использует хранилище учетных данных Windows для хранения вашего имени и пароля.

Windows Credential Store for Git
This application is a small helper app designed to follow the 
git credentials API as defined by the Git Documentation.

Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.

Затем в следующий раз, когда вы введете свое имя и пароль, он запомнит их для вас.


6
2018-02-23 11:54



Спасибо. Проект был переименован в Git-Credential-Manager-для-Windows,, - Michael S.


Когда вы настраиваете ssh-ключ для github, если это не ваш ключ по умолчанию, вам нужно будет добавить раздел в свой ~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa

5
2017-10-14 19:45





Кроме того, если вы хотите, чтобы каждый раз запрашивался ваш пароль, но просто не ваше имя пользователя, тогда вы настраиваете удаленный доступ как HTTPS с именем пользователя .. Вот так ..

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

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

Именно так я предпочитаю это, так как мне нравится вводить пароль моего github, прежде чем делиться с миром.


5
2017-08-11 03:17





Все немного отличается, если вы используете двухфакторный auth, как и я. Поскольку я не нашел хорошего ответа в другом месте, я буду придерживаться здесь, чтобы, может быть, я смогу найти его позже.

Если вы используете двухфакторное аутентификацию, тогда указание имени пользователя / пароля не будет работать в событии - вы получите отказ в доступе. Но вы можете использовать токен доступа к приложениям и использовать помощник учетных данных git для кэширования для вас. Вот ссылки:

И я не помню, где я это видел, но когда вас спрашивают ваше имя пользователя - вот где вы прикрепляете токен доступа к приложениям. Затем оставьте пароль пустым. Работал на моем mac.


2
2017-09-25 19:45





Также, если вы используете Windows, вы можете использовать:

$ git config --global credential.helper wincred

вам просто нужно войти в систему еще раз, а затем git запомнит.


1
2018-04-05 14:31