git: 'Керент-кеш' не є командою git


264

Я дотримувався цих інструкцій до листа, включаючи частину про кешування паролів. Здається, що вказівки неправильні, тому що кожного разу, коли git push origin masterя отримую цю помилку:

git: 'credential-cache' is not a git command. See 'get --help'.

... в цей момент я змушений ввести своє ім'я користувача та пароль. Після цього мені знову з’являється те саме повідомлення про помилку з подальшим виходом з git push.

Ось вміст мого .gitconfig файлу:

[user]
    name = myusername
    email = myusername@myemaildomain.com
[credential]
    helper = cache

Щоб було зрозуміло, після того, як я встановив Git і запустив Git Bash, ось ось що я набрав:

git config --global user.name "myusername"
git config --global user.email "myusername@myemaildomain.com"
git config --global credential.helper cache

Будь ласка, допоможіть. Це так засмучує!


53
Щоб видалити повідомлення, "git: 'poverljiv-кеш" не є командою git. ", Запустіть" git config --global --unset credential.helper ", тоді ви можете слідувати інструкціям нижче.
Уоллес Келлі

5
@Wally +1 Спасибі, ваша команда працювала на мене лише після видалення --global.
Web_Designer


1
Ви можете також видалити повідомлення, змінивши файл .git / config вручну (тобто видаліть рядки нижче [обліковий запис])
tarikakyol

FWIW для тих , хто читає різні пропозиції Windows , нижче, git config credential.helper cache зробив для мене робота з Cygwin мерзотника версії 2.13.2.
Флеш-Шерідан

Відповіді:


323

З блогу я знайшов :

"Цей [git-poverljiv-кеш] не працює для систем Windows, оскільки git-poverljiv-кеш спілкується через сокет Unix."

Git для Windows

Оскільки msysgit було замінено Git для Windows, використання Git для Windows зараз є найпростішим варіантом. У деяких версіях інсталятора Git для Windows (наприклад, 2.7.4) встановлено прапорець під час встановлення, щоб увімкнути диспетчер даних Git. Ось скріншот:

скріншот майстра встановлення Git For Windows 2.7.4

Все ще використовуєте msysgit? Для версій msysgit 1.8.1 і вище

Допомога wincredдодана в msysgit 1.8.1. Використовуйте його наступним чином:

git config --global credential.helper wincred

Для версій msysgit, старших за 1.8.1

По-перше, завантажте git-poverljivi-winstore та встановіть його у своєму каталогу git bin.

Далі переконайтеся, що каталог, що містить git.cmd, знаходиться у вашій змінній середовища Path. Типовим каталогом для цього є C: \ Program Files (x86) \ Git \ cmd у 64-бітній системі або C: \ Program Files \ Git \ cmd у 32-бітній системі. Простий спосіб перевірити це - запустити командний рядок і ввести git. Якщо ви не отримаєте список команд git, він налаштований неправильно.

Нарешті, запустіть командний рядок та введіть:

git config --global credential.helper winstore

Або ви можете редагувати .gitconfig файл вручну:

[credential]
    helper = winstore

Після цього ви можете керувати своїми обліковими записами git за допомогою диспетчера Windows Credential Manager, який ви можете отримати через панель керування Windows.


4
gitcredentialstore.codeplex.com містить поширені запитання. Це допомогло мені успішно встановити winstore. Бінарні збої, якщо ви не запустите його з git-bash.
руруський

8
FYI мені довелося встановити з явними правами адміністратора. Без цього я отримував помилку "git:" poveritive-winstore "- це не команда git. Див." Git --help "". Мій .gitconfig також виглядає дещо інакше, у [обліковому рядку] є "helper =!" C: \\ Користувачі \\ Малахі \\ AppData \\ Роумінг \\ GitCredStore \\ git-credential-winstore.exe ''
Малахій

шахта кидає необроблений виняток і гине - System.Diagnostics.Process.StartWithShellExecuteEx (ProcessStartInfo startInfo)
Андрій

1
Чи є причина, чому вони використовуватимуть розетки Unix у багатоплатформенному додатку? І якщо так, то чому git-poveritive-winstore за замовчуванням не постачається з версією Windows Git?
Домі

3
Інструмент git-trust-winstore для мене не працює. Раніше це було, але раптом мені все підказують. Я перевірив .git-config і диспетчера даних Windows і все, що там має бути. Це просто не працює, і я справді не знаю, чому. :(
Кріс Маккензі


30

Перший пробіг git config --global credential.helper wincred

Потім перейдіть до: CONTROL PANEL\CREDENTIAL MANAGER\WINDOWS CREDENTIAL\GENERIC CREDENTIAL

потім натисніть на додавання облікового запису в Internet or network address: add git:https://{username}.github.com

User: {ім'я}

Password: {Пароль}


2
Кредитний менеджер знаходиться в розділі "Облікові записи користувачів" та "Сімейна безпека" в Windows 7
Casey Murray

1
СПАСИБІ! Знадобилося мені годину, щоб дізнатися, як виправити свій менеджер облікових даних Windows після зміни пароля домену. Святий молі, який лабіринт.
SadBunny

3
%windir%\explorer.exe shell:::{1206F5F1-0569-412C-8FEC-3204630DFB70}з консолі запуститься і менеджер довірених даних.
Jeroen Wiert Pluimers

1
Дякую, моя проблема виправлена ​​:)
Diallo

21

Я зіткнувся з цією проблемою під час використання AptanaStudio3 на Windows7. Це допомогло мені:

git config --global credential.helper wincred

Код, взятий звідси


10

Зараз існує набагато простіший спосіб налаштування кешування паролів Git, двічі клацнувши невеликий EXE у Windows. Програма як і раніше базується на git-credential-winstoreзгадуванні голосової відповіді, хоча проект переміщено з GitHub на http://gitcredentialstore.codeplex.com/

Ви можете завантажити exe (та бінарний файл для Mac) з цього повідомлення в блозі: https://github.com/blog/1104-credential-caching-for-wrist-friendly-git-usage


Це відповідь, яку я шукав. Microsoft почала підтримувати цей проект. Він зберігає паролі у сховищі даних Windows.
Гордоліо

10

Аналогічна помилка є 'credential-wincred' is not a git command

Зараз прийняті та популярні відповіді застаріли ...

wincredпризначений для проекту git-credential-winstore, який більше не підтримується .

Його замінив Git-Credential-Manager-for-Windows, що підтримується відкритим кодом Microsoft .

Завантажте випуск у форматі zip із посилання вище та витягніть вміст до

\cygwin\usr\libexec\git-core

(або \cygwin64\usr\libexec\git-coreяк це може бути)

Потім увімкніть його (встановивши глобальний .gitconfig) - виконайте:

git config --global credential.helper manager

Як використовувати

Більше не потрібно конфігурувати.

Він працює [автоматично], коли потрібні облікові дані.

Наприклад, при натисканні на Azure DevOps він відкриває вікно та ініціалізує потік oauth2, щоб отримати ваш маркер.

посилання:


8

Спочатку знайдіть версію, яку ви використовуєте для GIT.

за допомогою цієї команди: git --version

якщо у вас новіша версія, ніж 1.7.10.

Тоді просто використовуйте цю команду.

git config --global credential.helper wincred

Довідково


6

Заради інших, хто приходить з цього питання, у мене була така сама проблема в Ubuntu (а саме те, що мої паролі не кешувались, незважаючи на те, що правильно встановили параметр та помилку git: 'credential-cache' is not a git command.), поки я не з'ясував, що ця функція лише доступний в Git 1.7.9 і вище .

Перебуваючи на більш старій версії Ubuntu (Natty; я впертий користувач Gnome 2), версія в репо була версією git 1.7.4.1. Я використовував наступний PPA для оновлення: https://launchpad.net/~git-core/+archive/ppa


1
Я все ще отримую git: 'credential-cache' is not a git command.навіть після оновлення до версії 2.8.2 в Windows, навіть хоча кеш даних облікових даних працює! Я, мабуть, створив цю проблему, використовуючи якусь git configкоманду раніше.
Буттер Буткус

1
@ButtleButkus git config змінює ~/.gitconfigабо репо-локальну .git/config, залежно від того, використовувався --globalпрапор. Подивіться на ці два файли, щоб дізнатися, що стосується облікових даних.
Йоганн

5

Заради того, що інші мають цю проблему - я приземлився сюди, тому що намагався приємно розібратися з тим, як я створив нове сховище github, але на сторінці налаштування помічник облікових даних не працює, якщо ви не клонуєте сховище.

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


4

Я вирішив цю проблему, видаливши credentialрозділ із конфігурації конкретного проекту:

  • Просто введено: git config -e
  • Всередині редактора я видалив увесь розділ [credential] helper = cache.

Це видалило дратівливе повідомлення:

git: 'credential-cache' is not a git command. See 'git --help'.


1
Я спробував багато рішень зверху, і це єдине, що спрацювало. Я просто зайшов у свою папку .git, відкрив конфігураційний файл та видалив [poveritive] helper = global (випадково встановив його на "global"). Велике спасибі Піні Чейні.
Філіп Савич

1
Я радий, що можу допомогти
Піні Чейні

3

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

У моєму файлі .gitconfig

[credential]
helper = cached
[credentials]
helper = wincred

Виправлення: змінив мій файл .gitconfig на налаштування нижче

[credential]
helper = wincred
[credentials]
helper = wincred

0

У нас була така ж проблема з нашими сховищами Azure DevOps після зміни домену, тобто з @ xy.com на @ xyz.com. Щоб вирішити цю проблему, ми створили новий особистий маркер доступу із такими дозволами:

Код: читати і писати Упаковка: читати

Тоді ми відкрили Менеджер облікових даних Windows, додали новий загальний обліковий запис Windows із такими деталями:

Інтернет або мережева адреса: "git: { projectname } @ dev.azure.com / { projectname }" - також ви можете використовувати тут своє ім'я сховища git.
Ім'я користувача: "Маркер особистого доступу"
Пароль: { Створений маркер особистого доступу }

Згодом усі наші операції з git знову працювали. Сподіваюся, це допоможе комусь іншому!

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