Я работаю с несколькими репозиториями, но в последнее время я просто работал в нашей внутренней, и все было отлично.
Сегодня мне пришлось совершать и вводить код в другой, но у меня возникают проблемы.
$ 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'
чтобы избежать кэширования учетных данных...
Ничто не работает; кто-нибудь имеет лучшую идею?
Кэш учетных данных 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:
Откройте учетные записи пользователей, нажав кнопку "Пуск" Рисунок кнопки "Пуск", выбрав "Панель управления", "Учетные записи пользователей и семейная безопасность" (или "Учетные записи пользователей", если вы подключены к сетевому домену), а затем "Учетные записи пользователей". На левой панели нажмите "Управление вашими учетными данными".
Control Panel\User Accounts\Credential Manager
разделе « Control Panel\User Accounts\Credential Manager
в Windows 7
Если эта проблема возникает на компьютере под управлением Windows, выполните следующие действия.
credential.helper=manager
. Чтобы проверить это, наберите git config --list
. Если установлено store
то учетные данные не сохраняются в хранилище учетных данных, а хранятся в незашифрованном виде.
git:https://github.com
и мне было предложено ввести свое имя пользователя / пароль в следующий раз, когда я клонировал репо с помощью PyCharm. У меня было более одного аккаунта на github, и неправильный был кэширован.
Retype:
$ git config credential.helper store
И затем вам будет предложено снова ввести ваши учетные данные.
Внимание
Использование этого помощника будет хранить ваши незашифрованные пароли на диске
Я столкнулся с той же проблемой, что и ОП. Он забирал мои старые учетные данные Git где-то в системе, и я хотел использовать Git с моими новыми учетными данными, поэтому я запустил команду
$ git config --system --list
Это показало
credential.helper=manager
Всякий раз, когда я выполнял git push
принимал свое старое имя пользователя, которое я давно отложил, и я хотел использовать новую учетную запись GitHub для изменения. Позже я обнаружил, что мои старые учетные данные GitHub хранятся в разделе "Панель управления" → "Учетные записи пользователей" → "Диспетчер учетных данных" → "Управление учетными данными Windows".
Я просто удалил эти учетные данные, и когда я выполнил git push
он попросил меня получить учетные данные GitHub, и это сработало как шарм.
Попробуйте использовать приведенную ниже команду.
git credential-manager
Здесь вы можете получить различные параметры для управления своими учетными данными (см. экран ниже).
Или вы можете даже прямо попробовать эту команду:
git credential-manager uninstall
Это начнет запрашивать пароли снова для каждого запроса на взаимодействие с сервером.
git: 'credential-manager' is not a git command. See 'git --help'.
В моем случае Git использует Windows для хранения учетных данных.
Все, что вам нужно сделать, это удалить сохраненные учетные данные, хранящиеся в вашей учетной записи Windows:
Я нашел кое-что, что сработало для меня. Когда я написал свой комментарий к OP, я не смог проверить файл конфигурации системы:
git config --system -l
показывает a
credential.helper=!github --credentials
линии. Я отключил его с помощью
git config --system --unset credential.helper
и теперь учетные данные забываются.
git config --global --unset credential.helper
и, возможно, просто git config --unset credential.helper
в вашем репозитории, если вы каким-то образом его там явно git config --unset credential.helper
.
git config --list
отобразит credential.helper = manager
(это на машине Windows)
Чтобы отключить это кэшированное имя пользователя/пароль для текущей локальной папки git, просто введите
git config credential.helper ""
Таким образом, git будет запрашивать пароль каждый раз, игнорируя то, что сохраняется внутри "менеджера".
git: 'credential-' is not a git command. See 'git --help'.
, но в целях безопасности я голосую против этого ответа, потому что только он заставил меня запросить новый пароль. Мне интересно, однако, если это не просто маскировка проблемы (пароль действительно удален?)
rm -rf ~/.git-credentials
сделал. Обратите внимание, что это может варьироваться ( git help credential-store
)
Необходимо войти в систему с соответствующим username
и password
github
Очистить имя пользователя и пароль в окнах
Панель управления\Учетные записи пользователей\Диспетчер учетных данных
Редактирование учетных данных Windows
Удалите существующего пользователя и теперь перейдите в командную строку, напишите команду push, чтобы отобразить всплывающее окно github, чтобы ввести username
/email
и password
.
Теперь мы можем нажать код после переключения пользователя.
В Windows 2003 Server с "wincred" * ни один из других ответов не помог мне. Мне пришлось использовать cmdkey
.
cmdkey/list
перечисляет все сохраненные учетные данные.cmdkey/delete:Target
удаляет учетные данные с именем "Target".
(* По "wincred" я имею в виду git config --global credential.helper wincred
)
Удалите эту строку из файла .gitconfig, находящегося в текущей пользовательской папке Windows:
[credential]
helper = !\"C:/Program Files (x86)/GitExtensions/GitCredentialWinStore/git-credential-winstore.exe\"
Это сработало для меня, и теперь, когда я нажимаю на удаленный компьютер, он снова запрашивает мой пароль.
В случае использования Git Credential Manager для Windows (какие текущие версии обычно делают):
git credential-manager clear
Это было добавлено в середине 2016 года. Чтобы проверить, используется ли менеджер учетных данных:
git config --global credential.helper
→ manager
Вы можете удалить строку credential.helper=!github --credentials
из следующего файла C:\Program Files\Git\mingw64\etc\gitconfig
, чтобы удалить учетные данные для git
В моем случае я не смог найти учетные данные, сохраненные в диспетчере учетных данных Windows (Windows 7).
Я смог reset мои учетные данные, выполнив
git config --global credential.helper wincred
Было честно приветствовать Мэри, чтобы узнать, не уничтожит ли он мои учетные данные, и это действительно сработало.
C:\Users\<current-user>
.git-credentials
Вы должны обновить его в своем Диспетчере учетных данных.
Перейдите в Панель управления> Учетные записи пользователей> Диспетчер учетных данных> Учетные данные Windows. Вы увидите учетные данные Git в списке (например, git: https://). Нажмите на нее, обновите пароль и выполните команду git pull/push из своего Git bash, и он больше не будет вызывать сообщения об ошибках.
Получилась такая же ошибка при выполнении "git pull", и именно так я ее исправил.
Использование последней версии 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, которое я ввел (правильный, который мне нужен), а затем связанный пароль, и все получилось правильно.
Я не уверен, насколько большая проблема связана с тем, что большинство людей, вероятно, работают с одним репо, но мне приходится работать по нескольким и использовать разные провайдеры, чтобы снова столкнуться с этой проблемой.
Reset пароля в диспетчере учетных данных отсортировано для меня
Построение ответа @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 (один для работы, один для игры) и соответственно именованные удаленные хосты для решения аутентификация тоже контекстуализируется.
Для пользователей MAC:
Эта ошибка появляется, когда вы используете несколько учетных записей Git на одном компьютере.
Чтобы удалить учетные данные github.com, выполните следующие действия.
Выберите github.com и щелкните правой кнопкой мыши по нему.
Удалить "github.com"
Попробуйте снова нажать или потянуть git, и он попросит учетные данные. Введите действительные учетные данные для учетной записи репозитория. Готово
Как упоминалось каждым выше, это проблема с Git Credential Manager
. Из-за разрешений я не смог изменить свои учетные данные или манипулировать менеджером учетных данных. Я также не мог позволить себе сидеть в текстовом формате на ПК. Обходной путь заключался в удалении удаленной ветки в intellij
и повторной добавлении удаленной ветки. Это удаляет сохраненные учетные данные и принудительно обновляет учетные данные.
Эта ошибка появляется, когда вы используете несколько учетных записей Git на одном компьютере.
Если вы используете MAC, вы можете удалить сохраненные учетные данные github.com.
Чтобы удалить учетные данные github.com, выполните следующие действия.
Готово
Наконец, для этого я решил использовать рабочий стол GitHub, перейти к настройкам репозитория и удалить пользователя: передать @из URL-адреса репозитория. Затем я попытался нажать из командной строки и был запрошен учетные данные для входа. После того, как я поместил их, все вернулось к нормальной жизни. Работают как Visual Studio, так и командная строка, и, конечно же, рабочий стол GitHub.
GitHub Desktop-> Репозиторий-> Репозиторий Settings-> Удаленная вкладка
Изменить первичный удаленный репозиторий (источник):
https://pork@[email protected]/MyProject/MyProject.git
Для того, чтобы:
https://github.com/MyProject/MyProject.git
Нажмите "Сохранить".
Учетные данные будут очищены.
В нашем случае мы очистили пароль в файле .git-credentials пользователя.
c:\users\[username]\.git-credentials
Если вы прошли проверку подлинности с помощью пары ключей, вы можете удалить или переместить закрытый ключ или остановить ключевой агент и попробовать.
~/.netrc
?