方法一: git-credential-winstore
今天在做一个兼容且可跨越的 localStorage 的实施方案,打算使用 github 进行项目的代码管理和版本控制。工作环境是 Windows,用的 git 工具是 msysgit。
git clone,git commit,git push。这一套下来工作的很流畅,很正常,可是有一点比较麻烦,就是每次 push 的时候,总是要输入一次在 github 上面的帐号和密码。就想着能不能在本地存储这个帐号和密码,每次 push 的时候就自动提交这个去验证。
Google 了一下,在一个 github 的帮助教程的快照上面看到了详细的关于如何在 push 到远程仓库时,不同系统下面如何去保存验证信息。
其中提到了一个软件:git-credential-winstore,这个是专门在 Windows 下面用来管理 git 的验证信息的。然后在 github 的官方帮助文档:上面,找到了软件的官方地址(其实上面那个快照对应的就是下面那个地址的,可能是 github 更新了,所以内容有些不同,过段时间,Google 那边更新快照之后应该就相同了)
可是在安装 git-credential-winstore.exe 的时候出了问题,会提示无法识别 git,软件里面给的解决方式有两种:
- 在系统的环境变量 PATH 里面加上 git 的安装目录
- 通过 cmd 进行安装 安装使用如下命令行
明确的指定 git 所在位置
git-credential-winstore.exe -i C:Program Files(x86)Gitcmdgit.exe
可惜这两种方式我试过了都失败了。最后在这个文章上才找到解决方式:git-credential-winstore.exe 必须放到 git 的安装目录里面,在 bin/文件夹下。 安装这篇文章里面指示的放置文件之后,双击安装,还是报之前的错误。不过幸运的是,通过 cmd 的方式进行安装成功了。
原因应该是我的环境变量设定有问题吧,不清楚 C:Program Files(x86)Gitcmd 和 C:Program Files(x86)Gitbin 应该使用哪一个,这两个目录下面都是有 git.exe 的。
安装完成之后,就是如何在 git 里面配置和使用了。 在最开始看的那篇文章里面,说的配置是这样的
git config –global credential.helper cache
作用是启用验证信息缓存功能 可是我按上面的配置之后,在 push 的时候,却提示:_’credential-cache’ is not a git command_
很明显,配置有问题的,可是 git 实在是新手,只好再次 Google 之,然后在 Stack Overflow 上面看到了这个帖子:
说在 Windows 下面,那个配置中的 cache 应该改成 winstore,正确的命令应该是这样的:
git config –global credential.helper winstore
按照这个命令重新执行了下,果然可以,在第一次 push 的时候,会有个弹窗,让你输入在 github 上面的帐号和密码,然后再次 push 的时候,就不必再输入帐号和密码了。
估计那篇文章里面使用 cache,是指的在 Linux 下的吧,而在 Windows 下面使用 git-credential-winstore 来管理验证信息,所以 credential.helper 就应该是 winstore
方法二: _netrc
昨天(20150310),有个同事介绍了一个我认为使用上虽然啰嗦一点但是更便捷的方法,虽然在安全性上,有点无法保障。在这里跟大家介绍一下,也可以看这里原文地址。
直接进入正题,步骤如下:
1. Windows
中添加一个用户变量
(开始-系统-高级系统设置-环境变量),名称为:HOME
,值为%USERPROFILE%
。
2. 在“开始-运行”中输入%Home%
后确定,在打开的文件夹下新建一个名为_netrc
的文件。
3. 用记事本打开_netrc
文件,输入 Git 服务器名、用户名、密码,并保存,例如:
machine git.yourserver.org —- git服务器名称
login yourlogin@email.com —- git用户名
password yourpassword123 —- git账号密码
不过这样有一个缺点就是你的帐号和密码会以明文的方式存储了
方法三: Git Credential Manager for Windows
这个是今天(20180530)在自己的新 windows 设备上尝试提交代码,一直需要帐号密码,前面两个方法都觉得麻烦,所以重新搜索了新的在 windows 下 git 凭据本地存储的方法。
Git Credential Manager for Windows这个管理器在 2.11.0 版本开始就已经在 git 的安装包里面了,不过前提是你安装的时候有勾选(默认没勾选)
如上图所示,安装的时候,对应勾选即可。
在安装成功之后,打开 Git Bash,然后输入命令git config --global credential.helper manager
完事!它会自动的在你需要的时候提供相关的凭据来跟远端服务器做校验
我认为第三个方法是相对而言最方便和安全的方案,推荐大家使用
转眼间,这个文章已经五年了,哈哈