TortoiseGit сохранить аутентификацию пользователя / учетные данные

286

Есть ли способ сэкономить GITHUB's user credentialsс TortoiseGit?

Это подсказывает мне диалоговое окно ниже каждый раз, когда я делаю push / pull.

Я хотел бы где-нибудь сохранить свои учетные данные, например, как я это делал с TortoiseSVN.

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

Мурали Муругесан
источник
Вы также можете использовать Диспетчер учетных данных для сохранения / управления учетными данными. stackoverflow.com/a/31782500/730676
user730676

Ответы:

351

Для TortoiseGit 1.8.1.2 или новее имеется графический интерфейс для включения / выключения помощника по учетным данным.

Это поддерживает git-credential-wincredи git-credential-winstore.

В TortoiseGit 1.8.16 добавлена ​​поддержка git-credential-manager(Git Credential Manager, преемник git-credential-winstore)

При первой синхронизации у вас запрашиваются имя пользователя и пароль, вы вводите их, и они будут сохранены в хранилище учетных данных Windows. Он не будет запрашивать имя пользователя или пароль при следующей синхронизации.

Использование: щелкните правой кнопкой мыши → TortoiseGit → Настройки → Git → Учетные данные. Выберите Помощник по учетным данным: wincred - только этот репозиторий / wincred - текущий пользователь Windows

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

linquize
источник
40
Ухоженная. Теперь, как мне это использовать?
BlueRaja - Дэнни Пфлугхофт
16
Щелкните правой кнопкой мыши -> TortoiseGit -> Настройки -> Git -> Учетные данные. Выберите помощник по wincred - this repository onlywincred - current Windows user
учетным данным
33
Нет, вы должны сначала включить помощник по учетным данным. При первой синхронизации у вас запрашиваются имя пользователя и пароль, вы вводите их, и они будут сохранены в хранилище учетных данных Windows. Он не будет запрашивать имя пользователя или пароль при следующей синхронизации.
Linquize
7
Примечание: это не будет работать, если ваше имя пользователя содержит @! По крайней мере для меня, это также сообщенная ошибка: github.com/msysgit/msysgit/issues/258
OschtärEi
5
Для TortoiseGit 1.8.16 и выше установите Git Credential Manager для Windows - github.com/Microsoft/Git-Credential-Manager-for-Windows - и следуйте инструкциям выше. GCM также обрабатывает кредиты для git в Cygwin / babun, что приятно.
DrStrangepork
68

Если вы собираетесь понизить этот ответ

Я написал это за несколько месяцев до включения git-credential в TortoiseGit. Учитывая большое количество дыр в безопасности, обнаруженных за последние несколько лет, и то, как много я узнал о сетевой безопасности, я НАСТОЯТЕЛЬНО рекомендую использовать уникальный (минимум 2048-битный RSA) ключ SSH для каждого сервера, к которому вы подключаетесь.

Приведенный ниже синтаксис все еще доступен, хотя сегодня доступны гораздо лучшие инструменты, такие как git-credential как принятый ответ, который подскажет вам, как его использовать. Сделай это вместо этого.


Попробуйте изменить удаленный URL на https://username@github.com/username/repo.gitгдеusername ваше имя пользователя github и repoимя вашего хранилища.

Если вы также хотите сохранить свой пароль (не рекомендуется), URL будет выглядеть следующим образом: https://username:password@github.com/username/repo.git .

Есть также другой способ сохранить пароль из этой справочной статьи github: https://help.github.com/articles/set-up-git#password-caching

Роберт Роухани
источник
Где я могу увидеть удаленный URL? В Настройках -> Удаленный -> URL пуст. Но я дал Git URL, когда я делаю клон в первый раз
Мурали Муругесан
2
Нажмите «Происхождение» в меню «Удаленное», чтобы открыть URL
Роберт Рухани,
Я думаю, что это работает, но не могу проверить, как я получаю «git не вышел чисто (код выхода 128)»
Murali Murugesan
К сожалению, вытащил URL из старого примера. Быстрый просмотр одного из моих репозиториев показывает, что URL-адрес должен быть: https://username@github.com/username/repo.gitгде оба экземпляра username- ваше имя пользователя. Обновил ответ.
Роберт Роухани
1
Это решило проблему намного быстрее и проще: stackoverflow.com/questions/8846972/tortoisegit-asking-password
ShloEmi
25

Ни один из приведенных выше ответов не работал для меня с использованием git версии 1.8.3.msysgit.0 и TortoiseGit 1.8.4.0.

В моей конкретной ситуации я должен подключиться к удаленному репозиторию Git через HTTPS, используя полный адрес электронной почты в качестве имени пользователя. В этой ситуации, wincredпохоже, не работает.

Использование адреса электронной почты в качестве части URL-адреса репо также не сработало, поскольку программное обеспечение, похоже, смущено двойным появлением символа «@» в URL-адресе.

Мне удалось преодолеть проблему с помощью winstore. Вот что я сделал:

Это скопирует в git-credential-winstore.exeлокальный каталог и добавит две строки в ваш глобальный .gitconfig. Вы можете проверить это, изучив свой глобальный .gitconfig. Это проще всего сделать с помощью правой кнопки мыши в папке «TortoiseGit> Настройки> Git> Изменить глобальный .gitconfig». Файл должен содержать две строки, такие как:

    [credential]
        helper = !'C:\\Users\\yourlogin\\AppData\\Roaming\\GitCredStore\\git-credential-winstore.exe'
  • Никаких других настроек TortoiseGit не требуется в разделе «Сеть» или «Учетные данные». В частности: раскрывающееся меню «Помощник по учетным данным» в разделе «Учетные данные» в результате этих строк конфигурации станет пустым, поскольку TortoiseGit не распознает нового помощника. Не устанавливайте в раскрывающемся меню другое значение, иначе глобальный .gitconfig будет перезаписан с неверным значением! (*)

Теперь вы готовы к работе:

  • Попробуйте вытащить из удаленного хранилища. Вы заметите всплывающее окно аутентификации, спрашивающее ваше имя пользователя и пароль, оно должно визуально отличаться от всплывающего окна TortoiseGit по умолчанию. Это хороший знак и значит winstoreработает. Введите правильную аутентификацию, и получение должно пройти успешно.
  • Попробуйте сделать то же самое еще раз, и ваши имя пользователя и пароль больше не должны запрашиваться.

Готово! Наслаждайтесь вашим взаимодействием с удаленным репо, пока winstoreзаботитесь об аутентификации.

(*) В качестве альтернативы, если вам не нравится пустой выбор в выпадающем меню помощника настроек учетных данных TortoiseGit, вы можете использовать опцию «Дополнительно»:

  • Перейдите к «TortoiseGit> Настройки> Учетные данные»
  • Выберите помощник по учетным данным «Дополнительно»
  • Нажмите на «G» (для глобальных) под Помощники
  • Введите путь помощника, как показано ниже. Примечание: обычная запись пути Windows (например, «C: \ Users ...») здесь не будет работать, вы должны повторить точную строку, которую установил winstoreсозданный в global .gitconfбез бита «helper =».

    !'C:\\Users\\yourlogin\\AppData\\Roaming\\GitCredStore\\git-credential-winstore.exe'
    
  • Нажмите кнопку «Добавить новый / сохранить»

Патрик Атон
источник
Вы указали мне в правильном направлении. Просто нужно было использовать «wincred - текущий пользователь Windows» и ввести имя пользователя, а НЕ адрес электронной почты. Это решило все.
Раззе
Я рад, что это помогло вам на правильном пути! Тем не менее, дело в моем случае связано именно с использованием адреса электронной почты. Это содержит "@" и вызовет проблемы, если вы попробуете один из других рецептов.
Патрик Атон
2
Гм,% 40 - это код для «@», поэтому, если вы попробовали « myEmail%40gmail.com@github.com/username/repo.git », вы сможете поместить свой адрес электронной почты в .config. Однако это не рекомендуется, но это возможно.
Том Падилья
Это правильный, правильный способ сделать это. Загрузите установщик из Microsoft / Git-Credential-Manager-for-Windows / release , затем щелкните правой кнопкой мыши setup.exeфайл и запустите от имени администратора.
8

Для msysgit 1.8.0 загрузите git-credential-wincred.exe по адресу https://github.com/downloads/msysgit/git/git-credential-wincred.zip и поместите в C: \ Program Files \ Git \ libexec \ git -core

Для msysgit 1.8.1 и новее, exe встроен.

в git config добавьте следующие настройки.

[учетные данные] помощник = wincred

linquize
источник
Где вы нашли Tortoise Git 1.8.1.2? Я вижу только 1.8.1.0 на их сайте
Кен Сикора
TortoiseGit 1.8.1.2 является предварительным выпуском.
Linquize
8

Сохранение имени пользователя и пароля с помощью TortoiseGit

Сохранить ваши данные для входа в TortoiseGit довольно просто. Избавляет от необходимости вводить имя пользователя и пароль каждый раз, когда вы нажимаете или нажимаете.

  1. Создайте файл с именем _netrc со следующим содержимым:

    машина github.com
    логин логин
    пароль пароль

  2. Скопируйте файл в C: \ Users \ (или в другое место; именно там я его и положил)

  3. Перейдите в командную строку, введите setx home C: \ Users \

Примечание. Если вы используете что-то более раннее, чем Windows 7, команда setx может не сработать. Вместо этого используйте set и добавьте переменную домашней среды в Windows, используя Дополнительные настройки в разделе «Мой компьютер».

КРЕДИТ: http://www.munsplace.com/blog/2012/07/27/saving-username-and-password-with-tortoisegit/

Энтони Кин
источник
2
Это самое лучшее решение! Но можете ли вы объяснить связь между файлом _netrc и git? Может ли этот файл хранить более одной области?
Алекс Берт
8

Если вы являетесь пользователем Windows 10 + TortoiseGit 2.7:

  1. при первом входе в систему просто следуйте инструкциям, чтобы ввести свои учетные данные и сохранить пароль.
  2. Если вам когда-либо понадобится обновить свои учетные данные, не теряйте времени на настройках TortoiseGit. Вместо этого, поиск в Windows> Диспетчер учетных данных> Учетные данные Windows> найдите запись git> Изменить.
Денис Ван
источник
Это ответ, который вы ищете, если вы изменили свой пароль Windows, и аутентификация Git больше не работает ... В немецкой Windows найдите «Anmeldeinformationsverwaltung».
Андре
о боже спасибо. я знаю, что мы не должны добавлять комментарии с спасибо. но спасибо !!
Стивен Хейзел
0

Перейти к репо проекта, щелкните правой кнопкой мыши -> «Git Bash Here»

В git bash тип окна

cd ~
pwd

я получаю что-то вроде этого

/c/Users/<windows_username>

Теперь скопируйте ваш открытый и закрытый ключи на этот путь

C:\Users\<windows_username>\.ssh

я получил ниже файлы там

id_rsa
id_rsa.pub
known_hosts

Вот

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

rajeshk
источник