终于解决“Git Windows客户端保存用户名与密码”的问题(转载)
add by zhj:不建议用这种方法,建议用SSH,参见
TortoiseGit密钥的配置 http://www.cnblogs.com/ajianbeyourself/p/3817364.html
TortoiseGit的使用 http://www.cnblogs.com/ajianbeyourself/p/3817552.html
原文:http://www.cnblogs.com/dudu/archive/2011/07/06/git_save_username_password.html
自从上次用 Bonobo Git Server 搭建好 Git 服务器,博客园开发团队就将源代码管理工具从SVN切换至Git。
传说中的Git果然名不虚传:速度快,想分就分,想合就合(分支管理方便)...
但有一个地方不爽,很不爽:每次Pull或Push时都要输入用户名与密码,无法保存用户名与密码。
程序员的天性之一 —— 讨厌重复(恨),程序员的天性之二 —— 解决问题(爱),爱与恨的结合就能碰撞出火花 —— 集中精力寻找解决方案(静)。
准备工作:
1. 远离微博(普天之下,最容易让人分心的东西非微博莫属)。
2. 确定路线,这个问题的路线很明显,要分别从服务器端与客户端下手。
开始干活:
1. 先从服务器端下手,下载Bonobo Git Server的源代码看一下服务器端是如何验证的。
web.config中就有答案,原来用的是http basic authentication。
<location path="Git.aspx">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
有了这个答案就可以和服务器端说88,并投入客户端的怀抱...
2. 客户端用的是msysgit+TortoiseGit,TortoiseGit只是壳,msysgit才是真相。
pull与push操作实际上都是调用msysgit中的git pull与git push命令,但git命令并没有传递用户名与密码的参数。
怎么办?... 问Google呗,对Google说话要精炼,不能哆嗦,我是这样说的:“git username password”;还是Google给力,第1页最后1条就给出了线索 —— Setup a remote git repository using http with push support and digest auth,见下图:

虽然Google出来的文章是针对Linux的,但不要轻易认为问题是Windows下的,对Linux下的解决方法看都不看一眼。直接找到答案很难,更多的时候我们是在找线索,并在发现的蛛丝马迹中不断地思考可能的解决方法。
这里的“.netrc”就是线索,利用这个线索继续对Google说:“git netrc windows”...
第1页第5个,"Stack Overflow"的大名映入眼帘:
Git - How to use netrc file on windows - Stack Overflow
Google再怎么+1也比不上品牌的力量,看到Stack Overflow,就看到了希望,就有点击的冲动。
点开一看,立即有“百度”(这里是“众里寻她千百度”的缩写)的感觉:

这就是正确答案,我们已经验证过了,下面详细描述一下解决方法:
1. 在Windows中添加一个HOME环境变量,值为%USERPROFILE%,如下图:
(add by zhj 环境变量有两种:用户变量和系统变量,这里的HOME是用户变量,
对于Windows7系统,该变量指向的是C:\Users\XXX,XXX是你的用户名)

2. 在“开始》运行”中打开%Home%,新建一个名为“_netrc”的文件。
(add by zhj 打开记事本,保存时,保存类型选所有文件(*.*),文件名为_netrc即可,这样就没有扩展名了)
3. 用记事本打开_netrc文件,输入Git服务器名、用户名、密码,并保存。示例如下:
machine git.cnblogs.com
login cnblogs_user
password cnblogs_pwd
(add by zhj如果代码放在github服务器上,第一行就是machine github.com)
问题解决,Git更给力了!
(add by zhj 这种方法只能用HTTPS地址clone,设置好后再clone代码,当pull、push时就不用输入用户名和密码了,但对于这个设置之前就clone的代码,当pull、push时会出错,解决办法是重新clone)
终于解决“Git Windows客户端保存用户名与密码”的问题(转载)的更多相关文章
- 终于解决“Git Windows客户端保存用户名与密码”的问题
这就是正确答案,我们已经验证过了,下面详细描述一下解决方法: 1. 在Windows中添加一个HOME环境变量,值为%USERPROFILE%,如下图: 2. 在“开始>运行”中打开%Home% ...
- Git Windows客户端保存用户名和密码
解决Git Windows客户端保存用户名和密码的方法,至于为什么,就不想说了. 1. 添加一个HOME环境变量,值为%USERPROFILE% 2. 开始菜单中,点击“运行”,输入“%Home%”并 ...
- Git Windows客户端保存用户名与密码
1. 在Windows中添加一个HOME环境变量,值为%USERPROFILE%,如下图: 2. 在“开始>运行”中打开%Home%,新建一个名为“_netrc”的文件. 3. 用记事本打开_n ...
- Git使用http clone客户端保存用户名密码
使用Git Bash时,用命令git pull或git push时总是要输入密码,很烦躁 解决办法 需要注意的是,这个方法是在Windows下使用 1. 新建环境变量 HOME 值为 %USERP ...
- git保存用户名和密码
git保存用户名和密码 简介:tortoiseGit(乌龟git)图形化了git,我们用起来很方便,但是我们拉取私有项目的时候,每次都要输入用户名和密码很麻烦,这里向大家介绍怎么避免多少输入 试验环境 ...
- window设置TortoiseGit连接git不用每次输入用户名和密码
1. 在Windows中添加一个HOME环境变量,值为%USERPROFILE%,如下图: 2. 在“开始>运行(快捷键:win+r)”中打开%Home%,然后在目录下新建一个名为“_netrc ...
- TortoiseGit+msysgit保存用户名和密码
本文以windows系统为例 保存用户名和密码 在C盘的c:\Users**qing** (或可能是C:\Users\Administrator) (替换自己的用户名)找到.gitconfig, 如果 ...
- android 保存 用户名和密码 设置等应用信息优化
1.传统的保存用户名,密码方式 SharedPreferences Editor editor = shareReference.edit(); editor.putString(KEY_NAME,& ...
- iOS 使用Keychain 保存 用户名和密码到 本地
iOS 使用Keychain 保存 用户名和密码到 本地 之前曾把一些简单的数据保存在了plist,文件,及NsuserDefault里面, 但是如果要保存密码之类的,保存在本地就很不安全了: 但是利 ...
随机推荐
- hbase源码系列(十五)终结篇&Scan续集-->如何查询出来下一个KeyValue
这是这个系列的最后一篇了,实在没精力写了,本来还想写一下hbck的,这个东西很常用,当hbase的Meta表出现错误的时候,它能够帮助我们进行修复,无奈看到3000多行的代码时,退却了,原谅我这点自私 ...
- duilib进阶教程 -- TreeView控件(6)
代码下载:http://download.csdn.net/detail/qq316293804/6483905 上一个教程中,界面已经和迅雷一模一样啦,大小和位置一个像素都不差哟,亏得Alberl调 ...
- 使用kill -9 进程ID杀死jps中进程
- No suitable servers found (`serverselectiontryonce` set): [Failed connecting to '115.28.161.44:27017': Connection timed out] php mongodb 异常
我 php mongodb 拓展使用的是 MongoDB driver 今天查询数据的时候 偶尔会提示, No suitable servers found (`serverselectiontry ...
- Linux设备驱动剖析之IIC(二)
953行,适配器的编号大于MAX_ID_MASK是不行的,MAX_ID_MASK是一个宏,展开后的值为61. 957至968行,关于管理小整形ID数的,没怎么了解,略过. 974行,调用i2c_reg ...
- 一、K3 Cloud 实施指导《K3 Cloud实施手册》
1.在BOS的单据体取不到序号字段 举例:单据体标识是FValueGrid,序号标识是FSeq,取到的序号标识要写成FValueGrid_FSeq才能识别到 2.k3 Cloud目前不支持在表头字段调 ...
- 170830、oracle密码过期ORA-28002: 7天之后口令将过期的解决方法
登陆oracle数据库时错误信息提示:“ORA-28002: 7 天之后口令将过期”. 原因:oracle11g中默认在default概要文件中设置了"PASSWORD_LIFE_TIME= ...
- 洛谷P1434 滑雪【记忆化搜索】
题目:https://www.luogu.org/problemnew/show/P1434 题意: 给一个矩阵,矩阵中的数字代表海拔高度. 现在要找一条最长路径,使得路径上的海拔是递减的. 思路: ...
- 项目()已配置为使用IIS Web服务器,但此计算机上...
问题:x 就是要将一个项目,配置在IIS上,以前没遇上过这种开发模式啊... 解决方案: 0.如果配置为不使用IIS Web服务器,将Project.csproj中的" <UseIIS ...
- Linq多表联合查询,在View中绑定数据
Ⅰ→通过ViewData传递数据,不过需要新建一个类(用来存) NewClass(里面有表1的字段和表2的字段) public class JoinTab1_2 { public int ID { g ...