Удаление учетных данных из Git
Я работаю с несколькими репозиториями, но в последнее время я просто работал в нашей внутренней, и все было отлично.
Сегодня мне пришлось совершать и вводить код в другой, но у меня возникают проблемы.
$ git push appharbor master
error: The requested URL returned error: 403 while accessing https://[email protected]/mitivo.git/info/refs?service=git-receive-pack
fatal: HTTP request failed
Я ничего не могу сделать, чтобы снова ввести пароль.
Как я могу reset учетные данные в моей системе, чтобы Git запросил у меня пароль этого репозитория?
Я пробовал:
-
git config --global --unset core.askpass
чтобы отключить пароль
-
git config credential.helper 'cache --timeout=1'
чтобы избежать кэширования учетных данных...
Ничто не работает; кто-нибудь имеет лучшую идею?
Ответы
Ответ 1
Кэш учетных данных Git запускает процесс демона, который кэширует ваши учетные данные в памяти и передает их по требованию. Таким образом, уничтожение вашего процесса git -credential-cache-daemon выкидывает все это и приводит к повторному запросу вашего пароля, если вы продолжаете использовать его как параметр cache.helper.
Вы также можете отключить использование кэша учетных данных Git, используя git config --global --unset credential.helper
. Затем reset это, и вы будете продолжать использовать кэшированные учетные данные для других репозиториев (если они есть). Вам также может потребоваться сделать git config --system --unset credential.helper
, если это было установлено в файле конфигурации системы (например, Git для Windows 2).
В Windows вам может быть лучше использовать помощник менеджера (git config --global credential.helper manager
). Это хранит ваши учетные данные в хранилище учетных данных Windows, в котором есть интерфейс панели управления, где вы можете удалить или изменить сохраненные учетные данные. В этом магазине ваши данные защищены вашим регистрационным именем Windows и могут сохраняться в течение нескольких сеансов. Помощник менеджера, включенный в Git для Windows 2.x, заменил более раннего помощника wincred, который был добавлен в Git для Windows 1.8.1.1. Аналогичный помощник, называемый winstore, также доступен в Интернете и использовался с GitExtensions, поскольку он предлагает интерфейс с интерфейсом GUI. Помощник менеджера предлагает тот же интерфейс графического интерфейса, что и winstore.
Извлеките из руководство по Windows, в котором подробно описывается панель хранилища учетных данных Windows:
Откройте учетные записи пользователей, нажав кнопку "Пуск" Рисунок кнопки "Пуск", выбрав "Панель управления", "Учетные записи пользователей и семейная безопасность" (или "Учетные записи пользователей", если вы подключены к сетевому домену), а затем "Учетные записи пользователей". На левой панели нажмите "Управление вашими учетными данными".
Ответ 2
Если эта проблема возникает на компьютере под управлением Windows, выполните следующие действия.
- Перейти в Диспетчер учетных данных
- Перейдите в учетные данные Windows
- Удалить записи в разделе Общие учетные данные
- Попробуйте снова подключиться. На этот раз он должен указать правильное имя пользователя и пароль.
Ответ 3
Retype:
$ git config credential.helper store
И затем вам будет предложено снова ввести ваши учетные данные.
Внимание
Использование этого помощника будет хранить ваши незашифрованные пароли на диске
Источник: https://git-scm.com/docs/git-credential-store
Ответ 4
Я столкнулся с той же проблемой, что и ОП. Он забирал мои старые учетные данные Git где-то в системе, и я хотел использовать Git с моими новыми учетными данными, поэтому я запустил команду
$ git config --system --list
Это показало
credential.helper=manager
Всякий раз, когда я выполнял git push
принимал свое старое имя пользователя, которое я давно отложил, и я хотел использовать новую учетную запись GitHub для изменения. Позже я обнаружил, что мои старые учетные данные GitHub хранятся в разделе "Панель управления" → "Учетные записи пользователей" → "Диспетчер учетных данных" → "Управление учетными данными Windows".
Я просто удалил эти учетные данные, и когда я выполнил git push
он попросил меня получить учетные данные GitHub, и это сработало как шарм.
Ответ 5
Попробуйте использовать приведенную ниже команду.
git credential-manager
Здесь вы можете получить различные параметры для управления своими учетными данными (см. экран ниже).
Или вы можете даже прямо попробовать эту команду:
git credential-manager uninstall
Это начнет запрашивать пароли снова для каждого запроса на взаимодействие с сервером.
Ответ 6
В моем случае Git использует Windows для хранения учетных данных.
Все, что вам нужно сделать, это удалить сохраненные учетные данные, хранящиеся в вашей учетной записи Windows:
Ответ 7
Я нашел кое-что, что сработало для меня. Когда я написал свой комментарий к OP, я не смог проверить файл конфигурации системы:
git config --system -l
показывает a
credential.helper=!github --credentials
линии. Я отключил его с помощью
git config --system --unset credential.helper
и теперь учетные данные забываются.
Ответ 8
git config --list
отобразит credential.helper = manager
(это на машине Windows)
Чтобы отключить это кэшированное имя пользователя/пароль для текущей локальной папки git, просто введите
git config credential.helper ""
Таким образом, git будет запрашивать пароль каждый раз, игнорируя то, что сохраняется внутри "менеджера".
Ответ 9
В Windows 2003 Server с "wincred" * ни один из других ответов не помог мне. Мне пришлось использовать cmdkey
.
-
cmdkey/list
перечисляет все сохраненные учетные данные. -
cmdkey/delete:Target
удаляет учетные данные с именем "Target".
(* По "wincred" я имею в виду git config --global credential.helper wincred
)
Ответ 10
Необходимо войти в систему с соответствующим username
и password
github
Очистить имя пользователя и пароль в окнах
Панель управления\Учетные записи пользователей\Диспетчер учетных данных
Редактирование учетных данных Windows
Удалите существующего пользователя и теперь перейдите в командную строку, напишите команду push, чтобы отобразить всплывающее окно github, чтобы ввести username
/email
и password
.
Теперь мы можем нажать код после переключения пользователя.
Ответ 11
Удалите эту строку из файла .gitconfig, находящегося в текущей пользовательской папке Windows:
[credential]
helper = !\"C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\"
Это сработало для меня, и теперь, когда я нажимаю на удаленный компьютер, он снова запрашивает мой пароль.
Ответ 12
Получилась та же ошибка при выполнении 'git pull', и именно так я это исправил.
- Изменить репо на HTTPS
- Запустите команду
git config --system --unset credential.helper
- Запустите команду
git config --system --add credential.helper manager
- Тестовая команда
git pull
- Введите учетные данные в открывшемся окне входа.
- Git pull успешно завершен.
Ответ 13
Вы можете удалить строку credential.helper=!github --credentials
из следующего файла C:\Program Files\Git\mingw64\etc\gitconfig
, чтобы удалить учетные данные для git
Ответ 14
В случае использования Git Credential Manager для Windows (какие текущие версии обычно делают):
git credential-manager clear
Это было добавлено в середине 2016 года. Чтобы проверить, используется ли менеджер учетных данных:
git config --global credential.helper
→ manager
Ответ 15
В моем случае я не смог найти учетные данные, сохраненные в диспетчере учетных данных Windows (Windows 7).
Я смог reset мои учетные данные, выполнив
git config --global credential.helper wincred
Было честно приветствовать Мэри, чтобы узнать, не уничтожит ли он мои учетные данные, и это действительно сработало.
Ответ 16
- Перейдите к
C:\Users\<current-user>
- проверить файл
.git-credentials
- Удалить контент или изменить в соответствии с вашим требованием
- Перезагрузите терминал
Ответ 17
Вы должны обновить его в своем Диспетчере учетных данных.
Перейдите в Панель управления> Учетные записи пользователей> Диспетчер учетных данных> Учетные данные Windows. Вы увидите учетные данные Git в списке (например, git: https://). Нажмите на нее, обновите пароль и выполните команду git pull/push из своего Git bash, и он больше не будет вызывать сообщения об ошибках.
Ответ 18
Эта ошибка появляется, когда вы используете несколько учетных записей Git на одном компьютере.
Если вы используете macOS, вы можете удалить сохраненные учетные данные github.com.
Пожалуйста, следуйте приведенным ниже инструкциям, чтобы удалить учетные данные github.com.
- Открытый доступ к брелку
- Найти GitHub
- Выберите github.com и щелкните по нему правой кнопкой мыши.
- Удалить "github.com"
- Попробуйте еще раз нажать или потяните, чтобы git, и он попросит учетные данные.
- Введите действительные учетные данные для учетной записи репозитория.
-
Готово
Ответ 19
Использование последней версии git для Windows в Windows 10 Professional, и у меня была аналогичная проблема, в которой у меня есть две разные учетные записи GitHub, а также учетная запись Bitbucket, поэтому все немного запуталось в VS2017, git-расширениях и git-bash.
Сначала я проверил, как git обрабатывает мои учетные данные с помощью этой команды (запустите git bash с повышенными командами или вы получите ошибки):
git config --list
Я нашел учетную запись Credential Manager, поэтому я нажал кнопку "СТАРТ"> набрал "Диспетчер учетных данных" и нажал левой кнопкой мыши на значке безопасного значка администратора, который запустил приложение. Затем я нажал вкладки учетных данных Windows и нашел запись для моей текущей учетной записи git, которая оказалась Bitbucket, поэтому я удалил эту учетную запись.
Но это не помогло, поэтому следующим шагом было сбросить учетные данные, и я сделал это из каталога репозитория на моем ноутбуке, который содержит проект GitHub, который я пытаюсь нажать на пульт. Я набрал следующую команду:
git config --system --unset credential.helper
Затем я сделал git push, и мне было предложено ввести имя пользователя GitHub, которое я ввел (правильный, который мне нужен), а затем связанный пароль, и все получилось правильно.
Я не уверен, насколько большая проблема связана с тем, что большинство людей, вероятно, работают с одним репо, но мне приходится работать по нескольким и использовать разные провайдеры, чтобы снова столкнуться с этой проблемой.
Ответ 20
Reset пароля в диспетчере учетных данных отсортировано для меня
Ответ 21
В нашем случае мы очистили пароль в файле .git-credentials пользователя.
c:\users\[username]\.git-credentials
Ответ 22
Наконец, для этого я решил использовать рабочий стол GitHub, перейти к настройкам репозитория и удалить пользователя: передать @из URL-адреса репозитория. Затем я попытался нажать из командной строки и был запрошен учетные данные для входа. После того, как я поместил их, все вернулось к нормальной жизни. Работают как Visual Studio, так и командная строка, и, конечно же, рабочий стол GitHub.
GitHub Desktop-> Репозиторий-> Репозиторий Settings-> Удаленная вкладка
Изменить первичный удаленный репозиторий (источник):
https://[email protected]@github.com/MyProject/MyProject.git
Для того, чтобы:
https://github.com/MyProject/MyProject.git
Нажмите "Сохранить".
Учетные данные будут очищены.
Ответ 23
Как упоминалось каждым выше, это проблема с Git Credential Manager
. Из-за разрешений я не смог изменить свои учетные данные или манипулировать менеджером учетных данных. Я также не мог позволить себе сидеть в текстовом формате на ПК. Обходной путь заключался в удалении удаленной ветки в intellij
и повторной добавлении удаленной ветки. Это удаляет сохраненные учетные данные и принудительно обновляет учетные данные.
Ответ 24
Для пользователей MacOS:
Эта ошибка появляется, когда вы используете несколько учетных записей Git на одном компьютере.
Пожалуйста, следуйте приведенным ниже инструкциям, чтобы удалить учетные данные github.com.
- Перейти к Finder
- Перейти к приложениям
- Перейти в папку "Утилиты"
- Открытый доступ к брелку
-
Выберите github.com и щелкните по нему правой кнопкой мыши.
Удалить "github.com"
Попробуйте еще раз нажать или потяните, чтобы git, и он попросит учетные данные. Введите действительные учетные данные для учетной записи репозитория. Готово
Ответ 25
Построение ответа @patthoyts с высоким рейтингом (fooobar.com/questions/4883/...):
Его ответ использует, но не объясняет конфиги "локальный" или "глобальный" или "системный". Официальная документация по git для них здесь и стоит прочитать.
Например, я работаю в Linux и не использую конфигурацию системы, поэтому я никогда не использую флаг --system
, но обычно нужно различать --local
и --global
.
Мой вариант использования - у меня есть два идентификатора Github; один для работы, а другой для игры.
Вот как бы я справился с проблемой:
$ cd work
# do and commit work
$ git push origin develop
# Possibly prompted for credentials if I haven't configured my remotes to automate that.
# We're assuming that now I've stored my "work" credentials with git credential helper.
$ cd ~/play
# do and commit play
$ git push origin develop
remote: Permission to whilei/specs.git denied to whilei.
fatal: unable to access 'https://github.com/workname/specs.git/': The requested URL returned error: 403
# So here where it goes down:
$ git config --list | grep cred
credential.helper=store # One of these is for _local_
credential.helper=store # And one is for _global_
$ git config --global --unset credential.helper
$ git config --list | grep cred
credential.helper=store # My _local_ config still specifies 'store'
$ git config --unset credential.helper
$ git push origin develop
Username for 'https://github.com': whilei
Password for 'https://[email protected]':
Counting objects: 3, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 1.10 KiB | 1.10 MiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/whilei/specs.git
b2ca528..f64f065 master -> master
# Now let turn credential-helping back on:
$ git config --global credential.helper "store"
$ git config credential.helper "store"
$ git config --list | grep cred
credential.helper=store # Put it back the way it was.
credential.helper=store
Стоит также отметить, что есть способы вообще избежать этой проблемы, например, вы можете использовать ~/.ssh/config
со связанными SSH-ключами для Github (один для работы, один для игры) и соответственно именованные удаленные хосты для решения аутентификация тоже контекстуализируется.
Ответ 26
Чтобы очистить кэш Git Credentials Managers для Windows:
rm $env:LOCALAPPDATA\GitCredentialManager\tenant.cache
или же
rm %LOCALAPPDATA%\GitCredentialManager\tenant.cache
Ответ 27
В Windows, по крайней мере, будет работать git remote show [remote-name]
, например
git remote show origin
Ответ 28
Если вы прошли проверку подлинности с помощью пары ключей, вы можете удалить или переместить закрытый ключ или остановить ключевой агент и попробовать.