git: 'credential-cache' не является командой git
Я следовал этим инструкциям к письму, включая часть о кешировании паролей. Кажется, что инструкции неверны, потому что каждый раз, когда я 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
Пожалуйста помоги. Это так расстраивает!
23 ответа
Из блога я нашел:
"Этот [git-credential-cache] не работает для систем Windows, так как git-credential-cache связывается через сокет Unix".
Git для Windows
Поскольку msitgit был заменен Git для Windows, использование Git для Windows теперь является самым простым вариантом. Некоторые версии установщика Git для Windows (например, 2.7.4) имеют флажок во время установки, чтобы включить Git Credential Manager. Вот скриншот:
Все еще используете msysgit? Для версий msysgit 1.8.1 и выше
wincred
помощник был добавлен в msysgit 1.8.1. Используйте это следующим образом:
git config --global credential.helper wincred
Для версий msysgit старше 1.8.1
Сначала загрузите git-credential-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, который можно открыть с помощью панели управления Windows.
Похоже git
теперь идет с wincred
из коробки в Windows (msysgit):
git config --global credential.helper wincred
Ссылка: https://github.com/msysgit/git/commit/e2770979fec968a25ac21e34f9082bc17a71a780
Первый забег git config --global credential.helper wincred
Затем перейдите к: CONTROL PANEL\CREDENTIAL MANAGER\WINDOWS CREDENTIAL\GENERIC CREDENTIAL
затем нажмите добавить учетные данные в Internet or network address:
добавлять git:https://
{Имя пользователя}.github.com
User:
{название}
Password:
{Пароль}
Я столкнулся с этой проблемой при использовании AptanaStudio3 на Windows7. Это помогло мне:
git config --global credential.helper wincred
Код взят здесь
Сначала найдите версию, которую вы используете для GIT.
используя эту команду: git --version
если у вас более новая версия, чем 1.7.10.
Тогда просто используйте эту команду.
git config --global credential.helper wincred
Похожая ошибка 'credential-wincred' is not a git command
Принятые и популярные ответы устарели...
wincred
для проекта git-credential-winstore, который больше не поддерживается.Его заменил https://github.com/Microsoft/Git-Credential-Manager-for-Windows, поддерживаемый Microsoft с открытым исходным кодом.
Загрузите релиз в виде zip-файла по ссылке выше и извлеките содержимое в
\cygwin\usr\libexec\git-core
(или же \cygwin64\usr\libexec\git-core
как может быть)
Затем включите его (установив глобальный .gitconfig
) - выполнить:
git config --global credential.helper manager
Как пользоваться
Никаких дополнительных настроек не требуется.
Он работает [автоматически], когда необходимы учетные данные.
Например, при нажатии на DevOps Azure он открывает окно и инициализирует поток oauth2 для получения вашего токена.
ссылка:
Я исправил эту проблему, удалив credential
раздел из конфига конкретного проекта:
- Просто набрал:
git config -e
- Внутри редактора я удалил весь раздел
[credential] helper = cache
,
Это удалило раздражающее сообщение:
git: 'credential-cache' is not a git command. See 'git --help'.
Это сработало для меня:
git credential-manager-core настроить
Теперь есть гораздо более простой способ настроить кэширование паролей Git, дважды щелкнув небольшой исполняемый файл в Windows. Программа по-прежнему основана на git-credential-winstore
упоминается в ответе, получившем наибольшее количество голосов, хотя проект был перемещен с GitHub на http://gitcredentialstore.codeplex.com/
Вы можете скачать exe (и бинарный файл для Mac) из этого поста в блоге: https://github.com/blog/1104-credential-caching-for-wrist-friendly-git-usage
Я также получал аналогичную ошибку, когда пытался использовать команду «git pull» из главной ветки.
Error: "git: 'credential-manager' is not a git command. See 'git --help'."
Я выполнил ниже две команды, и проблема была решена.
$ git config --global --unset credential.helper
$ git config credential.helper store
Ради других, кто сталкивался с этой проблемой, у меня была такая же проблема в Ubuntu (а именно, что мои пароли не кэшировались, несмотря на правильную настройку параметра и получение ошибки git: 'credential-cache' is not a git command.
), пока я не узнал, что эта функция доступна только в Git 1.7.9 и выше.
Находясь в более старом дистрибутиве Ubuntu (Natty; я упрямый пользователь Gnome 2), версия в репозитории была git version 1.7.4.1. Я использовал следующий PPA для обновления: https://launchpad.net/~git-core/+archive/ppa
Ради других, у которых возникла эта проблема - я попал сюда, потому что я пытался изобразить то, как я настраивал новый репозиторий github, но на странице настройки помощник по учетным данным не работает, если вы не клонируете репозиторий.
"Совет. Помощник по учетным данным работает только при клонировании URL-адреса хранилища HTTPS. Если вместо этого используется URL-адрес хранилища SSH, ключи SSH используются для аутентификации. В этом руководстве предлагается помощь в создании и использовании пары ключей SSH".
В более старой системе Ubuntu Linux:
git config --global credential.helper store
Я понимаю, что немного опоздал к разговору, но столкнулся с точно такой же проблемой. В моем git config у меня было две учетные записи…
В моем файле.gitconfig
[credential]
helper = cached
[credentials]
helper = wincred
Исправление: изменил мой файл.gitconfig на настройки ниже
[credential]
helper = wincred
[credentials]
helper = wincred
Другой эффективный обходной путь:
1- Перейдите в панель управления и добавьте свои учетные данные для github.com следующим образом:
2- перейдите в CMD и введите следующие команды:
- a- cd %localappdata%\Atlassian\SourceTree\git_local\mingw32\bin\
- b- git.exe config --edit --system
- c- исправьте последнюю строку: helper = manager
- d- Сохраните новый файл конфигурации, нажав CTRL+C, затем введите: wq и нажмите Enter.
Это отлично работает для меня!
Текущий пакет помощника по учетным данным с Git для Windows (2.32, 2 квартал 2021 г.):
git config credential.helper
manager-core
where git-credential-manager-core
C:\Program Files\Git\mingw64\libexec\git-core\git-credential-manager-core.exe
Это после GCM-core (Git Credential Manager Core): microsoft/Git-Credential-Manager-Core/
Git Credential Manager Core (GCM Core) - это безопасный помощник по учетным данным Git, созданный на .NET, который работает в Windows и macOS. Поддержка Linux находится на ранней стадии предварительного просмотра.
По сравнению со встроенными помощниками по учетным данным Git (Windows: wincred, macOS: osxkeychain, Linux: gnome-keyring), которые обеспечивают поддержку однофакторной аутентификации, работающей в любом репозитории Git с поддержкой HTTP, GCM Core обеспечивает поддержку многофакторной аутентификации для Azure DevOps. , Azure DevOps Server (ранее Team Foundation Server), GitHub и Bitbucket.
Git Credential Manager Core (GCM Core) заменяет основе .NET Framework Git Credential Manager надля Windows (GCM) и основе Java Git Credential Manager надля Mac и Linux (Java GCM) , обеспечивая единообразную аутентификацию на всех платформах.
Я буквально только что прошел через это!
- Загрузите Git Credential Manager Core и установите его: https://github.com/microsoft/Git-Credential-Manager-Core#download-and-install .
- Перейти к
Account Settings > Emails
на Гитхабе. Вы должны увидеть что-то вроде этого: - Выделенное электронное письмо создано системой, чтобы сохранить конфиденциальность вашей личной электронной почты. Теперь скопируйте это и используйте на следующем шаге.
- Настройте git:
git config --global user.name "yourusername"
git config --global user.email "1234567+yourgithubusername@users.noreply.github.com"
git config --global credential.helper cache
Теперь ваши команды git должны снова работать.
Небольшое примечание: я использую Linux Mint. YMMV
Дополнительное примечание: в Git Credential Manager Core v 2.0.567 есть ошибка в бэкадже Debian. Пожалуйста, установите v2.0.474 до выхода новой версии.
В моем случае эта команда решила проблему:
git config --global credential.helper manager-core --replace-all
за использование нового диспетчера учетных данных net-core.
у меня было три разных
helper=
записи в разделе [credential] моего .gitconfig, один из них пустой. Удаление двух других и сохранение
helper=wincred
решил проблему для меня.
Кстати: не знаю почему, но я не сразу нашел свой .gitconfig. Я нашел его тогда в C:\Users\username.
У нас была такая же проблема с нашими репозиториями Azure DevOps после изменения нашего домена, то есть с @xy.com на @xyz.com. Чтобы решить эту проблему, мы создали новый токен личного доступа со следующими разрешениями:
Код: чтение и запись Упаковка: чтение
Затем мы открыли диспетчер учетных данных Windows, добавили новые общие учетные данные Windows со следующими данными:
Адрес в Интернете или в сети: "git:{projectname}@dev.azure.com / {projectname}" - в качестве альтернативы вы должны использовать здесь свое имя репозитория git.
Имя пользователя: "токен личного доступа".
Пароль: {сгенерированный токен личного доступа}
После этого все наши операции с git снова заработали. Надеюсь, это поможет кому-то другому!
Я удаляю менеджер паролей, поэтому вы должны поставить пароль всем
git credential-manager uninstall
На Mac выполните следующую команду:
git config --global credential.helper osxkeychain
Хотя он не отвечает на вопрос в точности так, как задан, это был наиболее подходящий вопрос, который я смог найти, чтобы задокументировать его как ответ:
я использую
git
под MSYS2 в Windows 10, которая в настоящее время имеет версию:
$ git --version
git version 2.32.0
Обычно я просто хочу, чтобы git кэшировал мой пароль на ограниченное время (может быть, 10 минут или около того), а затем забыл об этом; и я еще не видел использования
wincred
или другой диспетчер учетных данных для Windows с этим вариантом использования.
При этом оказалось, что для меня существует «простое решение» - в принципе, при первом запуске диспетчера учетных данных все в порядке; только при последующем использовании я получаю:
$ git push
Password for 'http://user@githost.example.com':
fatal: The permissions on your socket directory are too loose; other
users may be able to read your cached credentials. Consider running:
chmod 0700 /home/user/.cache/git/credential
fatal: cache daemon did not start:
Enumerating objects: 8, done.
Counting objects: 100% (8/8), done.
...
Итак, в основном исправление состоит в том, чтобы удалить
credential
каталог - после этого диспетчер кеша учетных данных запускается как будто в первый раз и кэширует пароли в течение ограниченного времени - так, как я этого хочу:
$ rm -rf ~/.cache/git/credential
# note below, the very first pull still asks for a password:
$ git pull
Password for 'http://user@githost.example.com':
Already up to date.
# ... but the second pull does not, it uses credentials cache
$ git pull
Already up to date.
Достаточно хорошо для меня, я думаю
:)