Отключить git credential-osxkeychain
Мне нужно отключить помощник учетных данных для OS X: git credential-osxkeychain
Он отключен как в глобальном файле конфигурации, так и в локальном, на самом деле он имеет никогда ben. Тем не менее, он запоминает мои данные для входа в github.
Я нахожусь на ноутбуке, поэтому я не хочу автоматического доступа без доступа к моим репозиториям.
I будет использовать ssh-ключи. Это новый компьютер, и вся установка системы все еще продолжается.
На данный момент я использовал репозитории https
repo, и вспомогательный помощник продолжает пинать.
Это мои файлы conf:
git config --edit
= >
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
[remote "origin"]
url = https://github.com/user/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "develop"]
remote = origin
merge = refs/heads/develop
[branch "deploy"]
remote = origin
merge = refs/heads/deploy
git config --global --edit
= >
[user]
email = ****************
name = tom
[color]
ui = true
[core]
editor = subl -w
[github]
user = tompave
[merge]
conflictstyle = diff3
[push]
default = simple
Кроме того, запуск git config --global credential.helper
не возвращает ничего (и это право).
Однако запуск git config credential.helper
возвращает osxkeychain
!
Как это возможно? Я не вижу его в локальном файле конфигурации, где он установлен?
Я попытался настроить его локально, чтобы узнать, что произойдет, и < > появится в repodir/.git/config
. Затем я удалил запись... но помощник все еще здесь и активен.
Я могу видеть его запись в keychain OS X.
Я могу удалить его, а затем git снова запросит пароль... но как только я его напечатаю (скажем, для git fetch
), запись в цепочке ключей восстанавливается,
Ответы
Ответ 1
Чтобы отследить настройку, я попытаюсь использовать:
git config --local credential.helper
git config --global credential.helper
git config --system credential.helper
Первый проверяет локальную конфигурацию репо, вторая - ~/.gitconfig
, а третья - на том, где установлен git. В зависимости от того, какой из них возвращается с помощью помощника учетных данных, вы можете попробовать использовать эквивалентную опцию --unset
:
git config --local --unset credential.helper
git config --global --unset credential.helper
git config --system --unset credential.helper
Последний может не работать, если у вас нет соответствующих разрешений. Таким образом, вам может понадобиться запустить последний в sudo
, чтобы он работал правильно. FWIW, вы можете установить для предварительно созданных изображений git для Mac OS X. Если вы cat /usr/local/git/etc/gitconfig
, вы увидите, что он настроил помощник учетных данных для вас. Поэтому последняя команда выше поможет исправить эту проблему.
Ответ 2
Другие ответы были очень полезными. Credential.helper не показывался для меня ни в одном из списков (указав --local, --global и т.д.), И он всегда показывался в 'git config -l'. Команда -show-origin показала, что она поступает из файла, специфичного для OS X.
$ git config --show-origin --get credential.helper
file:/Applications/Xcode.app/Contents/Developer/usr/share/git-core/gitconfig osxkeychain
Ответ 3
Самой конфигурации (git config --unset credential.helper
) недостаточно.
Не забудьте убить любой git-credential-osxkeychain
процесс (как описанный здесь), или посмотреть, сохраняется ли проблема после перезагрузки.
Кроме того, при использовании GitHub для Mac проверьте, есть ли эта конфигурация, используемая внутри этого инструмента.
Помните, что только git config
проверяет системный, глобальный и локальный файл конфигурации.
Примечание: с помощью git 2.9 вы можете просто установить credential.helper
в "пустую строку", чтобы отключить его: см. "Как отключить учетные данные git помощник для одного хранилища?".