Удалить учетные данные из Git

333

Я работаю с несколькими репозиториями, но в последнее время я просто работал в нашей внутренней, и все было отлично.

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

$ 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'

чтобы избежать кэширования учетных данных...

Ничто не работает; кто-нибудь имеет лучшую идею?

  • 0
    У вас есть файл ~/.netrc ?
  • 1
    @robinst это Windows-машина, и я не могу найти этот файл, даже из Git Bash ...
Показать ещё 5 комментариев
Теги:
credentials

26 ответов

391
Лучший ответ

Кэш учетных данных 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:

Откройте учетные записи пользователей, нажав кнопку "Пуск" Рисунок кнопки "Пуск", выбрав "Панель управления", "Учетные записи пользователей и семейная безопасность" (или "Учетные записи пользователей", если вы подключены к сетевому домену), а затем "Учетные записи пользователей". На левой панели нажмите "Управление вашими учетными данными".

  • 0
    Вы упомянули об этом помощнике? gitcredentialstore.codeplex.com
  • 135
    Я нашел панель Control Panel\User Accounts\Credential Manager разделе « Control Panel\User Accounts\Credential Manager в Windows 7
Показать ещё 12 комментариев
290

Если эта проблема возникает на компьютере под управлением Windows, выполните следующие действия.

  • Перейти в Диспетчер учетных данных
  • Перейдите в учетные данные Windows
  • Удалить записи в разделе Общие учетные данные
  • Попробуйте снова подключиться. На этот раз он должен указать правильное имя пользователя и пароль.

Изображение 7244

Изображение 7245

  • 0
    Это актуально только если ваш credential.helper=manager . Чтобы проверить это, наберите git config --list . Если установлено store то учетные данные не сохраняются в хранилище учетных данных, а хранятся в незашифрованном виде.
  • 2
    Мне нужно было только удалить учетные данные с именем git:https://github.com и мне было предложено ввести свое имя пользователя / пароль в следующий раз, когда я клонировал репо с помощью PyCharm. У меня было более одного аккаунта на github, и неправильный был кэширован.
Показать ещё 8 комментариев
121

Retype:

$ git config credential.helper store

И затем вам будет предложено снова ввести ваши учетные данные.

Внимание

Использование этого помощника будет хранить ваши незашифрованные пароли на диске

Источник: https://git-scm.com/docs/git-credential-store

  • 1
    как я могу отменить эту команду?
  • 9
    эта команда не просит ввести мои учетные данные снова, эта команда ничего не делает
Показать ещё 2 комментария
43

Я столкнулся с той же проблемой, что и ОП. Он забирал мои старые учетные данные Git где-то в системе, и я хотел использовать Git с моими новыми учетными данными, поэтому я запустил команду

$ git config --system --list

Это показало

credential.helper=manager

Всякий раз, когда я выполнял git push принимал свое старое имя пользователя, которое я давно отложил, и я хотел использовать новую учетную запись GitHub для изменения. Позже я обнаружил, что мои старые учетные данные GitHub хранятся в разделе "Панель управления" → "Учетные записи пользователей" → "Диспетчер учетных данных" → "Управление учетными данными Windows".

Изображение 7246

Я просто удалил эти учетные данные, и когда я выполнил git push он попросил меня получить учетные данные GitHub, и это сработало как шарм.

  • 0
    Хорошая иллюстрация недавнего недавнего использования Git Credential Manager ( github.com/Microsoft/Git-Credential-Manager-for-Windows ), который работает путем хранения учетных данных ( github.com/Microsoft/Git-Credential-Manager-for-Windows/ вопросы /… ) +1
  • 0
    @VonC Мне потребовался день, чтобы выяснить это, поскольку я не знал об этом механизме хранения учетных данных.
Показать ещё 1 комментарий
34

Попробуйте использовать приведенную ниже команду.

git credential-manager

Здесь вы можете получить различные параметры для управления своими учетными данными (см. экран ниже).

Изображение 7247

Или вы можете даже прямо попробовать эту команду:

git credential-manager uninstall

Это начнет запрашивать пароли снова для каждого запроса на взаимодействие с сервером.

  • 4
    Почему я получаю - git: 'credential-manager' is not a git command. See 'git --help'.
  • 0
    Какую именно команду вы пробовали?
Показать ещё 5 комментариев
26

В моем случае Git использует Windows для хранения учетных данных.

Все, что вам нужно сделать, это удалить сохраненные учетные данные, хранящиеся в вашей учетной записи Windows:

Изображение 7248

22

Я нашел кое-что, что сработало для меня. Когда я написал свой комментарий к OP, я не смог проверить файл конфигурации системы:

git config --system -l

показывает a

credential.helper=!github --credentials

линии. Я отключил его с помощью

git config --system --unset credential.helper

и теперь учетные данные забываются.

  • 1
    не работа для меня. git v2, система Windows
  • 2
    Анкур, вам может понадобиться запустить предложенную команду аналогичным образом 2-3 раза, если вы настроили пару помощников по учетным данным. git config --global --unset credential.helper и, возможно, просто git config --unset credential.helper в вашем репозитории, если вы каким-то образом его там явно git config --unset credential.helper .
12
git config --list

отобразит credential.helper = manager (это на машине Windows)

Чтобы отключить это кэшированное имя пользователя/пароль для текущей локальной папки git, просто введите

git config credential.helper ""

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

  • 0
    У меня есть ошибка ниже, git: 'credential-' is not a git command. See 'git --help'. , но в целях безопасности я голосую против этого ответа, потому что только он заставил меня запросить новый пароль. Мне интересно, однако, если это не просто маскировка проблемы (пароль действительно удален?)
  • 0
    Нет: rm -rf ~/.git-credentials сделал. Обратите внимание, что это может варьироваться ( git help credential-store )
Показать ещё 2 комментария
8

Необходимо войти в систему с соответствующим username и password github

Очистить имя пользователя и пароль в окнах

Панель управления\Учетные записи пользователей\Диспетчер учетных данных

Редактирование учетных данных Windows

Удалите существующего пользователя и теперь перейдите в командную строку, напишите команду push, чтобы отобразить всплывающее окно github, чтобы ввести username/email и password.

Теперь мы можем нажать код после переключения пользователя.

  • 0
    это так же, как принятый ответ
8

В Windows 2003 Server с "wincred" * ни один из других ответов не помог мне. Мне пришлось использовать cmdkey.

  • cmdkey/list перечисляет все сохраненные учетные данные.
  • cmdkey/delete:Target удаляет учетные данные с именем "Target".

Изображение 7249

(* По "wincred" я имею в виду git config --global credential.helper wincred)

7

Удалите эту строку из файла .gitconfig, находящегося в текущей пользовательской папке Windows:

[credential]
helper = !\"C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\"

Это сработало для меня, и теперь, когда я нажимаю на удаленный компьютер, он снова запрашивает мой пароль.

6

В случае использования Git Credential Manager для Windows (какие текущие версии обычно делают):

git credential-manager clear

Это было добавлено в середине 2016 года. Чтобы проверить, используется ли менеджер учетных данных:

git config --global credential.helper
→ manager
6

Вы можете удалить строку credential.helper=!github --credentials из следующего файла C:\Program Files\Git\mingw64\etc\gitconfig, чтобы удалить учетные данные для git

5

В моем случае я не смог найти учетные данные, сохраненные в диспетчере учетных данных Windows (Windows 7).

Я смог reset мои учетные данные, выполнив

git config --global credential.helper wincred

Было честно приветствовать Мэри, чтобы узнать, не уничтожит ли он мои учетные данные, и это действительно сработало.

  • 0
    Это сработало для меня; У меня не было записи в диспетчере учетных данных для удаления.
4
  1. Перейдите к C:\Users\<current-user>
  2. проверить файл .git-credentials
  3. Удалить контент или изменить в соответствии с вашим требованием
  4. Перезагрузите терминал
4

Вы должны обновить его в своем Диспетчере учетных данных.

Перейдите в Панель управления> Учетные записи пользователей> Диспетчер учетных данных> Учетные данные Windows. Вы увидите учетные данные Git в списке (например, git: https://). Нажмите на нее, обновите пароль и выполните команду git pull/push из своего Git bash, и он больше не будет вызывать сообщения об ошибках.

2

Получилась такая же ошибка при выполнении "git pull", и именно так я ее исправил.

  1. Изменить репо на HTTPS
  2. Запустить команду 'git config --system --unset credential.helper'
  3. Запустить команду 'git config --system --add credential.helpder manager'
  4. Тестовая команда 'git pull'
  5. Введите учетные данные в появившемся окне входа в систему.
  6. Git pull успешно завершен.
  • 0
    --system? Как насчет --global? Как насчет без сферы? Что означает область настройки?
2

Использование последней версии 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, которое я ввел (правильный, который мне нужен), а затем связанный пароль, и все получилось правильно.

Я не уверен, насколько большая проблема связана с тем, что большинство людей, вероятно, работают с одним репо, но мне приходится работать по нескольким и использовать разные провайдеры, чтобы снова столкнуться с этой проблемой.

  • 0
    Спасибо Панг за редактирование
1

Reset пароля в диспетчере учетных данных отсортировано для меня

0

Построение ответа @patthoyts с высоким рейтингом (https://stackoverflow.com/questions/15381198/remove-credentials-from-git):

Его ответ использует, но не объясняет конфиги "локальный" или "глобальный" или "системный". Официальная документация по 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 (один для работы, один для игры) и соответственно именованные удаленные хосты для решения аутентификация тоже контекстуализируется.

0

Для пользователей MAC:

Эта ошибка появляется, когда вы используете несколько учетных записей Git на одном компьютере.

Чтобы удалить учетные данные github.com, выполните следующие действия.

  1. Перейти к Finder
  2. Перейти к приложениям
  3. Перейдите в папку "Утилиты"
  4. Открыть доступ к Keychain
  5. Выберите github.com и щелкните правой кнопкой мыши по нему.

    Удалить "github.com"

Попробуйте снова нажать или потянуть git, и он попросит учетные данные. Введите действительные учетные данные для учетной записи репозитория. Готово

0

Как упоминалось каждым выше, это проблема с Git Credential Manager. Из-за разрешений я не смог изменить свои учетные данные или манипулировать менеджером учетных данных. Я также не мог позволить себе сидеть в текстовом формате на ПК. Обходной путь заключался в удалении удаленной ветки в intellij и повторной добавлении удаленной ветки. Это удаляет сохраненные учетные данные и принудительно обновляет учетные данные.

Изображение 7251

  • 1
    Как видно из других ответов, вы можете просто удалить сертификат в хранилище сертификатов Windows, это самый простой способ. иногда вы не можете просто удаленно управлять пультом, так как пароль уже хранится в кэше сертификатов, и в следующий раз, когда вы добавите этот же пульт, он будет использовать кэшированный сертификат.
  • 0
    Я предполагаю, что вы можете использовать слово «сертификат» вместо «учетные данные». Из-за политики на моем компьютере; У меня нет доступа к моему «хранилищу учетных данных», как я описал в своем посте. Я не мог на самом деле удалить их. То, что сделало их недействительными, это удаление удаленной ветви и ее повторное добавление. И НЕТ. Он не использует повторно кэшированные «учетные данные».
0

Эта ошибка появляется, когда вы используете несколько учетных записей Git на одном компьютере.

Если вы используете MAC, вы можете удалить сохраненные учетные данные github.com.

Чтобы удалить учетные данные github.com, выполните следующие действия.

  1. Открыть доступ к Keychain
  2. Найти github
  3. Выберите github.com и щелкните правой кнопкой мыши по нему.
  4. Удалить "github.com"
  5. Попробуйте снова нажать или потянуть git, и он попросит учетные данные.
  6. Введите действительные учетные данные для учетной записи репозитория.
  7. Готово

    Изображение 7250

0

Наконец, для этого я решил использовать рабочий стол GitHub, перейти к настройкам репозитория и удалить пользователя: передать @из URL-адреса репозитория. Затем я попытался нажать из командной строки и был запрошен учетные данные для входа. После того, как я поместил их, все вернулось к нормальной жизни. Работают как Visual Studio, так и командная строка, и, конечно же, рабочий стол GitHub.

GitHub Desktop-> Репозиторий-> Репозиторий Settings-> Удаленная вкладка

Изменить первичный удаленный репозиторий (источник):

https://pork@[email protected]/MyProject/MyProject.git

Для того, чтобы:

https://github.com/MyProject/MyProject.git

Нажмите "Сохранить".

Учетные данные будут очищены.

0

В нашем случае мы очистили пароль в файле .git-credentials пользователя.

c:\users\[username]\.git-credentials
  • 0
    Да, несколько других людей уже неоднократно заявляли об этом
-2

Если вы прошли проверку подлинности с помощью пары ключей, вы можете удалить или переместить закрытый ключ или остановить ключевой агент и попробовать.

  • 1
    он использует https, так что здесь нет ключа

Ещё вопросы

Сообщество Overcoder
Наверх
Меню