Max*_* Li 23 linux git credentials
我跑了
git config credential.helper store
跑了
git push origin master
我输入凭据的地方,他们得救了.
我读到它们是以纯文本形式存储的,所以现在我想删除我的凭据,保存并默认输入.
我怎样才能做到这一点?
小智 48
在终端中运行以下命令以删除存储在缓存中的凭据
git config --global --unset credential.helper
Run Code Online (Sandbox Code Playgroud)
小智 14
对我来说,所有选项都不起作用,我只是.git/
在我的存储库中编辑了文件“config”。
cd .git/
nano config
Run Code Online (Sandbox Code Playgroud)
搜索[remote "origin"]
并编辑上面:
url=YOUR REPOSITORY URL
(有或没有用户并像这样传递username:password@gitlab.com/username/repository.git
)
保存并尝试推送您的存储库
tor*_*rek 12
您的凭据存储在git credential-store
您(或它)运行命令时指定的文件中(或使用的文件),如文档中所述.默认是$HOME/.git-credentials
.您应该能够在编辑器中打开此文件并对其进行编辑,或者只是将其完全删除.
请注意,您可能还需要更改凭据帮助程序,以便不再存储这些凭据.见该git credential-cache
文件为好,例如.
Atc*_*ava 12
如果您希望守护进程提前退出,在超时之前忘记所有缓存的凭据,您可以发出退出操作,运行以下命令。
git 凭证缓存退出
由于他没有将任何标志设置为global或local或system,因此默认情况下它将采用local ,因此正确的方法是移至相应的文件夹(存储库)并键入此命令
git config --local --unset credential.helper
Run Code Online (Sandbox Code Playgroud)
要么
git config --unset credential.helper
Run Code Online (Sandbox Code Playgroud)
参考:https : //www.atlassian.com/git/tutorials/setting-up-a-repository/git-config
如果您使用的是 Windows 10,操作系统中有一个凭据管理器。
转到“开始”菜单,输入“Credential Manager”,然后在该管理器中选择“Windows Credentials”,找到“git:https://github.com”,展开它,然后您会在其中找到“Delete”。
对于 Linux 用户:
我在尝试从密码身份验证切换到 PAT(个人访问令牌)时遇到了这个问题。
我使用 https 来使用 Github。Github建议(在撰写此答案时)只需输入我的 PAT 而不是我的密码即可完成切换。然而,我遇到的问题是我的密码被缓存了,所以我从来不需要输入它。
因此,我必须查找缓存/存储的密码才能将其删除,以便在出现提示时输入我的 PAT 而不是密码。
我在以下文件中找到了密码:
/home/MyUsername/.gitconfig
Run Code Online (Sandbox Code Playgroud)
我删除了该文件,并在下次粘贴 PAT 而不是我的密码。
Github 建议使用他们的 Git Credential Manager Core (GCM Core) 来存储凭证(来源:https://docs.github.com/en/get-started/getting-started-with-git/caching-your-github-credentials-在-git 中)。我也安装了这个,并且 PAT 凭据现在存储在不同的位置:
/home/MyUsername/.gcm
(这是一个文件夹)
我更详细地写了这个答案,也许有点题外话,因为从 2 天(2021 年 8 月 13 日)开始,密码身份验证将不再可能,我想一些用户可能很难找到他们缓存的密码。
TL;DR 寻找:
/home/MyUsername/.gitconfig
Run Code Online (Sandbox Code Playgroud)
如果您只想删除一个缓存的凭据,则可以在任何操作系统中通过从 Git 命令行驱动 Git 凭据助手 API 来完成此操作:
假设 Git 存储库是 git.example.com 并且您使用 HTTPS 进行连接。在操作系统命令提示符处输入 Git 命令:
git credential reject
Run Code Online (Sandbox Code Playgroud)
您现在位于凭证 API 拒绝功能的命令行上。键入以下行:
protocol=https
host=git.example.com
Run Code Online (Sandbox Code Playgroud)
在下一行中,使用操作系统的“stdin 结束”按键关闭命令。通常对于 Linux 和 Macos 是 Ctrl-D,对于 Windows 可能是 Ctrl-Z。
该凭证现已从凭证存储中删除。由于我们使用 Git 的凭证 API 进行删除,因此后端使用哪个实现该 API 的凭证存储并不重要。
在使用上述命令之前,请勿更改 Git 的 user.email 或 credential.helper 配置。以用于连接远程 Git 存储库的用户 ID 身份(而不是超级用户身份)运行命令。
小智 7
通用且简单的解决方案:
echo "url=https://github.com" | git credential reject
Run Code Online (Sandbox Code Playgroud)
这会取消 GitHub 上的授权。
以上都不适合我。我使用的是 Mac,我必须做的是从钥匙串应用程序中手动删除我的凭据
脚步
$ git config --global credential.helper
osxkeychain
Run Code Online (Sandbox Code Playgroud)
对我来说 unset 命令不起作用,而是我删除了文件:
rm ~/.git-credentials
Run Code Online (Sandbox Code Playgroud)