如果你使用的是 SSH 方式连接远端,并且设置了一个没有口令的密钥,这样就可以在不输入用户名和密码的情况下安全地传输数据。 然而,这对 HTTP 协议来说是不可能的 —— 每一个连接都是需要用户名和密码的。理论来说,远程仓库相关的操作都是需要账号密码的,如push等,但如果每次都输,就很麻烦。这里git提供了我们凭证记录工具(credential),集成进git的命令。
git credential 文档 https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E5%87%AD%E8%AF%81%E5%AD%98%E5%82%A8
开启凭证记录
git config --global credential.helper store
这里直接设置的全局,当然也可以设置某个项目,如在项目路径下,上述命令无须“--global”即可。
“store” 代表git会将凭证用明文的形式存放在磁盘中,并且永不过期。当运行上述命令后,可以
git config --list
看到设置的内容,
当git远程仓库操作,第一次输完账户密码后,git默认会在用户目录下生成一个“.git-credentials”文件,里面记录了账号和密码。如下
如果想要取消凭证记录,或者说清空原先的凭证记录,可以直接删除生成的“.git-credentials”文件,或者运行如下命令
git config --global --unset credential.helper
取消config中的credential的配置即可。“global”根据自己的情况而定。
如果git config --list里面还是有credential.helper的话,可能是其他层次设置里面还存在这个变量。可以尝试:
git config --global --unset credential.helper
git config --local --unset credential.helper