git pull解决每次都需要输入密码的操作

版本控制 专栏收录该内容
27 篇文章 0 订阅

一、背景

当我们用Git的https做为仓库地址操作的时候。每一个对远程仓库的操作,都需要让我们输入账号和密码。如下:

root@iZwz9i66akux4rll2yvvhaZ test_laravel]# git pull
Username for 'https://gitee.com': 

二、问题解决

  1. 提交存储账号和密码请求
    此时,我们只需要进入到自己的网站根目录,输入以下命令,表示Git帮助我们存储账号和密码
    git config --global credential.helper store
    
  2. 重新输入一次账号和密码
    第一步做完之后,只需要再次做一次远程操作,然后,完整输入一次账号和密码。这样Git就会记录的你的账号和密码信息了。后续的远程操作都不会再需要输入账号和密码了。

三、原理

执行上述操作之后,Git会在~/目录下生成一个.git-credentials文件。里面记录了你登录的账号和密码信息。
我的操作用户是root,则就是在/root/.git-credentials。里面的内容如下:

https://seek%40linsen.com:seek%40888@gitee.com

四、附加

凭证存储

这是利用Git的凭证存储store模式实现的。
Git 拥有一个凭证系统来处理这个事情。 下面有一些 Git 的选项。

  • 默认所有都不缓存。 每一次连接都会询问你的用户名和密码。

  • “cache” 模式会将凭证存放在内存中一段时间。 密码永远不会被存储在磁盘中,并且在15分钟后从内存中清除。

  • “store” 模式会将凭证用明文的形式存放在磁盘中,并且永不过期。 这意味着除非你修改了你在 Git 服务器上的密码,否则你永远不需要再次输入你的凭证信息。 这种方式的缺点是你的密码是用明文的方式存放在你的 home 目录下。

  • 如果你使用的是 Mac,Git 还有一种 “osxkeychain” 模式,它会将凭证缓存到你系统用户的钥匙串中。 这种方式将凭证存放在磁盘中,并且永不过期,但是是被加密的,这种加密方式与存放 HTTPS 凭证以及 Safari 的自动填写是相同的。

  • 如果你使用的是 Windows,你可以安装一个叫做 “Git Credential Manager for Windows” 的辅助工具。 这和上面说的 “osxkeychain” 十分类似,但是是使用 Windows Credential Store 来控制敏感信息。 可以在 https://github.com/Microsoft/Git-Credential-Manager-for-Windows 下载。

具体细节请参照官方文档

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值