禁用git credential-osxkeychain

时间:2013-04-17 05:55:49

标签: git github

我需要禁用OS X的凭据帮助程序:git credential-osxkeychain

它在全局配置文件和本地配置文件中都被禁用,实际上它已启用从不 ben。它仍然记住我的github登录详细信息 我在笔记本电脑上,所以我不希望自动无密码访问我的回购 我使用ssh密钥。这是一台新电脑,整个系统设置仍在进行中 现在我使用了https repo refs,凭证助手一直在努力。

这些是我的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中。然后我删除了条目...但是帮助程序仍然在这里并且处于活动状态。

我可以清楚地看到它在OS X钥匙串中的输入 我可以删除它,然后 git 会再次要求输入密码...但是一旦我输入密码(比如说git fetch),就会恢复钥匙串中的条目。

4 个答案:

答案 0 :(得分:76)

为了帮助追踪设置,我尝试使用:

git config --local credential.helper
git config --global credential.helper
git config --system credential.helper

第一个检查本地repo配置,第二个是你的~/.gitconfig,第三个是基于git的安装位置。根据显示凭据帮助程序的内容,您可以尝试使用等效的--unset选项:

git config --local --unset credential.helper
git config --global --unset credential.helper
git config --system --unset credential.helper

如果您没有适当的权限,最后一个可能无效。因此,您可能需要在sudo下运行最后一个才能正常工作。 FWIW,你可能已经安装了Mac OS X的预建git图像。如果你cat /usr/local/git/etc/gitconfig(或/usr/local/etc/gitconfig如果你通过Homebrew或本地建筑安装git),你会看到它确实为您设置了凭证帮助程序。所以上面的最后一个命令将有助于解决这个问题。

答案 1 :(得分:32)

其他答案非常有帮助。在任何列表(指定--local, - global等)中,credential.helper都没有显示给我,它始终显示在' 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

答案 2 :(得分:2)

配置本身(git config --unset credential.helper)是不够的 确保同时终止任何git-credential-osxkeychain进程(如described here),或查看重新启动后问题是否仍然存在。

此外,在使用GitHub for Mac时,请检查此工具是否内部使用了配置 请记住,仅git config将检查系统,全局和本地配置文件。

注意:使用git 2.9,您只需将credential.helper设置为“空字符串”即可将其禁用:请参阅“How do I disable git's credential helper for a single repository?”。

答案 3 :(得分:1)

就我而言,它更容易运行:

git config --get-all --show-origin credential.helper

哪个输出包含配置文件路径的完整列表:

file:/Library/Developer/CommandLineTools/usr/share/git-core/gitconfig   osxkeychain
file:/Users/yourname/.gitconfig !aws codecommit credential-helper $@

然后打开配置文件:

sudo vim /Library/Developer/CommandLineTools/usr/share/git-core/gitconfig

然后在行credential.helper=osxkeychain

中注释掉