Почему Github запрашивает имя пользователя / пароль, следуя инструкциям на экране и нажимая новое РЕПО?

Я владелец организации на github и только что создал РЕПО и попытался нажать, но я столкнулся с проблемой, когда он спрашивает меня о моем имени пользователя, хотя я могу SSH просто отлично:

$ ssh -T git@github.com
Hi Celc! You've successfully authenticated, but GitHub does not provide shell access.
$ git add .
$ git commit -m 'first commit'
[master (root-commit) 3f1b963] first commit
 6 files changed, 59 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 main.js
 create mode 100644 package.json
 create mode 100644 readme.markdown
 create mode 100644 views/index.ejs
 create mode 100644 views/layout.ejs
$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git push -u origin master
Username for 'https://github.com':

что я делаю не так? Это никогда не случалось со мной раньше, но недавно я также обновился до git 1.7.10.3.

9 ответов


не используйте HTTP используйте SSH вместо

изменить

https://github.com/WEMP/project-slideshow.git 

to

git@github.com:WEMP/project-slideshow.git

вы можете сделать это


у меня была такая же проблема, и я задавался вопросом, почему это не произошло с РЕПО bitbucket, которое было клонировано с https. Заглянув в него немного, я обнаружил, что конфигурация для РЕПО BB имела URL-адрес, который включал мое имя пользователя. Поэтому я вручную отредактировал конфигурацию для моего РЕПО GH, как так и вуаля, больше нет приглашения имени пользователя. Я на Windows.

редактировать your_repo_dir/.git/config (помните: .git папка скрыта)

изменения:

https://github.com/WEMP/project-slideshow.git

в:

https://*username*@github.com/WEMP/project-slideshow.git

сохраните файл. Do a git pull чтобы проверить его.

правильный способ сделать это, вероятно, с помощью команд Git bash для редактирования настройки, но редактирование файла напрямую не казалось проблемой.


здесь официальный ответ для этого:

Если Git запрашивает имя пользователя и пароль каждый раз, когда вы пытаетесь взаимодействовать с GitHub, вы, вероятно, используете URL-адрес клона HTTPS для своего репозитория.

используя удаленный URL HTTPS имеет некоторые преимущества: его проще настроить, чем SSH, и обычно работает через строгие брандмауэры и прокси. Однако, он также предлагает ввести учетные данные GitHub каждый раз, когда вы тянете или нажмите хранилище.

вы можете настроить Git для хранения пароля для вас. Если вы хотите настроить это, прочитайте все о настройка кэширования пароля.


дополнительно:

Если вы уже добавили удаленный ($git remote add origin ... ) и нужно изменить этот конкретный удаленный, а затем сначала удалить удаленный ($git remote RM origin), прежде чем повторно добавить новый и улучшенный URL-адрес РЕПО (где "origin" было имя удаленного РЕПО).

так, чтобы использовать исходный пример :

$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git remote rm origin
$ git remote add origin https://github-username@github.com/WEMP/project-slideshow.git

Я только что получил письмо от github.com администратор заявляет следующее: "Обычно мы советуем людям использовать URL HTTPS, если у них нет конкретной причины использовать протокол SSH. HTTPS безопасен и проще настроить, поэтому мы по умолчанию используем его при создании нового репозитория."

приглашение пароля действительно принимает нормальный github.com данные для входа. Руководство по настройке кэширования паролей можно найти по адресу https://help.github.com/articles/set-up-git#password-caching . Я последовал инструкциям в учебнике, и это сработало для меня.


улучшения на @Ianl это ответ,

Если вы хотите отключить приглашения для имени пользователя и пароля, то вы можете установить URL следующим образом -

git remote set-url origin https://username:password@github.com/WEMP/project-slideshow.git

обратите внимание, что URL имеет как имя пользователя, так и пароль. Также .git/config файл должен показывать ваши текущие настройки.


потому что вы используете HTTPS путь. HTTPS требует, чтобы вы вводите ваш доступ к учетной записи каждый раз, когда вы захотите push или pull, но есть еще один способ, называемый SSH, и это позволяет вам сказать git, что Я даю вам разрешение с моей учетной записью для этого ПК, и никогда не спрашивайте меня снова о любом доступе пользователя. Чтобы использовать его, вы должны создать SSH и добавьте его в свой аккаунт Github только один время.Для этого вы можете выполнить следующие действия

как создать SSH-ключ для Github


Если вы используете HTTPS, проверьте правильность URL-адреса. Например:

$ git clone https://github.com/wellle/targets.git
Cloning into 'targets'...
Username for 'https://github.com': ^C

$ git clone https://github.com/wellle/targets.vim.git
Cloning into 'targets.vim'...
remote: Counting objects: 2182, done.
remote: Total 2182 (delta 0), reused 0 (delta 0), pack-reused 2182
Receiving objects: 100% (2182/2182), 595.77 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1044/1044), done.

Если вы включили двухфакторную аутентификацию, вам нужно будет создать персональный токен доступа и использовать его вместо обычного пароля. Подробнее здесь: https://help.github.com/articles/creating-an-access-token-for-command-line-use/