Git 将凭据存储在 Windows 凭据管理器中

Git keeps storing credentials in Windows Credential Manager

我只想对单个命令使用一些 git 凭据。

git -c remote.origin.url="http://pass:user@gitserver/GitRepo" push

但在执行此操作后,凭据将保存在凭据管理器中(我可以在 Windows 凭据管理器中看到它们),并隐式用于后续 git push 命令。

如何防止存储它们?

首先,确定你的范围

您可能希望在三个不同范围之一中禁用 Windows 凭据管理器:

  • 全局,所以这些信用从不存储在管理器中,
  • 在本地,因此信用不存储在这个 repo 的管理器中,或者
  • 暂时,只有一个命令。

在所有情况下,答案都是取消配置中的 credential.helper,但如何操作取决于范围。

全球

运行

git config --global credential.helper ""

和 Git 将不再为您在任何地方存储凭据。

本地

克隆沙箱后,您可以仅使用以下命令禁用该沙箱内操作的凭据管理器:

git config --local credential.helper ""

仅针对一个命令

最后可以在命令行中使用-c一次性覆盖:

git -c credential.helper= <some command>

本地,重访

如果您要为单个存储库禁用凭据管理,您实际上必须在克隆存储库时使用 -c 变体,以关闭克隆时的凭据存储,并且 --local 在该沙箱中设置,关闭 push/pull/fetch 操作的凭据存储。

全部撤消

如果您稍后改变主意,可以通过删除您自己的禁用凭据管理的配置设置来撤消操作:

git config --global --unset credential.helper

git config --local --unset credential.helper

这样,您将返回到系统默认值(在我的 Git 中 manager-core for Windows 配置,它使用 Windows 凭据管理器)。

或者,您可以在全局或沙箱中显式设置您自己的凭证管理器选择,方法是:

git config --global credential.helper manager-core

git config --local credential.helper manager-core