Чому Github запитує ім'я користувача / пароль, дотримуючись інструкцій на екрані та натискаючи нове репо?


298

Я є власником організації в 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.

Відповіді:


662

Не використовуйте HTTP, використовуйте SSH замість цього

змінити

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

до

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

ви можете зробити це у .git/configфайлі


1
Дякую! Я щойно зрозумів це, прочитавши stackoverflow.com/a/10126412/29347 , я не думаю, що github зазвичай дає мені репортаж як HTTPS, що спричинило певну плутанину.
Кіт Сунде

2
Ви можете змінити цю опцію, натиснувши кнопку, куди ви скопіюєте URL-адресу клонування.
Дерек Адаїр

Для MacOS. Проблема, коли ви переходите до останніх макосів. stackoverflow.com/a/39616339/1445102
1Rhino

12
Ви також можете зробити це git remote set-url origin git@github.com:user/repo.git, як детально в stackoverflow.com/questions/10126381/…
І нарешті,

54

У мене був цей самий випуск і було цікаво, чому цього не сталося з репотом бітбукета, який був клонований https. Трохи заглянувши в нього, я виявив, що конфігурація для BB-репо має URL-адресу, яка включає моє ім'я користувача. Тому я вручну відредагував конфігурацію для мого репортажу GH, як so, і voila, більше не буде запиту користувача. Я в Windows.

Редагувати your_repo_dir/.git/config(пам’ятайте: .gitпапка прихована)

Змінити:

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

до:

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

Збережіть файл. Зробіть git pullтестування.

Правильний спосіб зробити це, ймовірно, за допомогою команд git bash для редагування налаштувань, але редагування файлу безпосередньо не здавалося проблемою.


Це хороший момент, якщо ви включите ім'я користувача, воно буде оброблятися брелоком ОС (принаймні, це повинно бути в OSX, і, мабуть, і в Windows). Немає різниці між редагуванням файлу в блокноті або з vim / emacs / nano / vi, я б не переживав так сильно про технічний снобізм, це все одно просто звичайний текстовий файл.
Kit Sunde

20

Ось офіційна відповідь на це:

Якщо Git пропонує вам ім'я користувача та пароль кожен раз, коли ви намагаєтесь взаємодіяти з GitHub, ви, ймовірно, використовуєте URL-адресу клонування HTTPS для вашого сховища.

Використання віддаленої URL-адреси HTTPS має деякі переваги: ​​налаштувати його простіше, ніж SSH, і зазвичай працює через суворі брандмауері та проксі-сервери. Однак він також пропонує вам вводити свої дані GitHub кожного разу, коли ви витягуєте або натискаєте сховище.

Ви можете налаштувати Git для зберігання вашого пароля. Якщо ви хочете налаштувати це, прочитайте все про налаштування кешування паролів .


1
Дякую. Я б заперечував з Github, що це не простіше налаштувати, якщо ти
опинишся

Це відповідь на запитання, бо запитання, ЧОМУ ?
eli

14

Поліпшення на @ Ianl в відповідь ,

Здається, що якщо ввімкнено двоетапну автентифікацію, ви повинні використовувати маркер замість пароля. Ви можете створити маркер тут .

Якщо ви хочете відключити підказки і для імені користувача, і для пароля, ви можете встановити URL-адресу наступним чином -

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

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


Оновлення 20200128:

Якщо ви не хочете зберігати пароль у конфігураційному файлі, ви можете створити свій особистий маркер і замінити пароль на маркер. Ось кілька деталей .

Це виглядатиме так -

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

Це безпечно? Чи може хтось просто отримати доступ до цієї інформації з мого комп’ютера?
Akaisteph7

Так, вони можуть отримати доступ з вашого комп’ютера, оскільки вони зберігаються у простому тексті у .git/configфайлі
kaushal

11

додаткова примітка:

якщо ви вже додали віддалений ($ git remote add origin ...) і вам потрібно змінити цей конкретний віддалений, тоді спочатку виконайте віддалене видалення ($ git remote rm origin), перш ніж повторно додавати нову та вдосконалену URL-адресу репо (де "походження" була назва віддаленого репо).

тож використовувати оригінальний приклад:

$ 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

4
Не потрібно видаляти пульт. Ви можете просто змінити URL:git remote set-url origin https://github-username@github.com/WEMP/project-slideshow.git
shovavnik

8

Якщо ви використовуєте 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.

1
Це чудовий момент! Якщо у вас є помилка в URL-адресі, вам буде запропоновано ввести "Ім'я користувача", а не сказати, що сховище не існує.
dmitrii

5

Я щойно отримав електронний лист від адміністратора github.com із зазначенням наступного: "Ми зазвичай радимо людям використовувати URL-адресу HTTPS, якщо у них немає конкретних причин використовувати протокол SSH. HTTPS безпечний і простіший у налаштуванні, тому ми за замовчуванням до цього створюємо новий сховище. "

Запрошення пароля дійсно приймає звичайні дані для входу на github.com. Підручник про те, як налаштувати кешування паролів, можна знайти на веб-сторінці https://help.github.com/articles/set-up-git#password-caching . Я стежив за кроками в підручнику, і це працювало на мене.


1
URL-адресу було оновлено: help.github.com/articles/caching-your-github-password-in-git
MarkHu

4

Тому що ви використовуєте HTTPS спосіб. HTTPS вимагає вводити доступ до свого облікового запису кожен раз, коли ви намагаєтесь натиснути або потягнути , але є також один спосіб, який називається SSH , і він дозволяє вам сказати git, що я даю вам дозвіл на моєму акаунті для цього ПК, і ніколи не запитувати я знову про будь-який доступ користувача . Щоб користуватися ним, ви повинні створити ключ SSH та додати його до свого облікового запису Github лише один раз. Для цього ви можете виконати ці кроки

Як створити ключ SSH для Github


4

Якщо ви ввімкнули двофакторну автентифікацію, вам потрібно буде створити особистий маркер доступу та використовувати його замість звичайного пароля. Більше інформації тут: https://help.github.com/articles/creating-an-access-token-for-command-line-use/


Ніл Я вважаю, що це корисна інформація, але я сумніваюся, що це не може відповісти на відповідь.
інстинкт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.