終于解決“Git Windows客戶端保存用戶名與密碼”的問題自從上次用 Bonobo Git Server 搭建好 Git 服務(wù)器,博客園開發(fā)團(tuán)隊(duì)就將源代碼管理工具從SVN切換至Git。 傳說中的Git果然名不虛傳:速度快,想分就分,想合就合(分支管理方便)... 但有一個地方不爽,很不爽:每次Pull或Push時都要輸入用戶名與密碼,無法保存用戶名與密碼。 程序員的天性之一 —— 討厭重復(fù)(恨),程序員的天性之二 —— 解決問題(愛),愛與恨的結(jié)合就能碰撞出火花 —— 集中精力尋找解決方案(靜)。 準(zhǔn)備工作: 1. 遠(yuǎn)離微博(普天之下,最容易讓人分心的東西非微博莫屬)。 2. 確定路線,這個問題的路線很明顯,要分別從服務(wù)器端與客戶端下手。 開始干活: 1. 先從服務(wù)器端下手,下載Bonobo Git Server的源代碼看一下服務(wù)器端是如何驗(yàn)證的。 web.config中就有答案,原來用的是http basic authentication。
有了這個答案就可以和服務(wù)器端說88,并投入客戶端的懷抱... 2. 客戶端用的是msysgit+TortoiseGit,TortoiseGit只是殼,msysgit才是真相。 pull與push操作實(shí)際上都是調(diào)用msysgit中的git pull與git push命令,但git命令并沒有傳遞用戶名與密碼的參數(shù)。 怎么辦?... 問Google唄,對Google說話要精煉,不能哆嗦,我是這樣說的:“git username password”;還是Google給力,第1頁最后1條就給出了線索 —— Setup a remote git repository using http with push support and digest auth,見下圖: 雖然Google出來的文章是針對Linux的,但不要輕易認(rèn)為問題是Windows下的,對Linux下的解決方法看都不看一眼。直接找到答案很難,更多的時候我們是在找線索,并在發(fā)現(xiàn)的蛛絲馬跡中不斷地思考可能的解決方法。 這里的“.netrc”就是線索,利用這個線索繼續(xù)對Google說:“git netrc windows”... 第1頁第5個,"Stack Overflow"的大名映入眼簾: Git - How to use netrc file on windows - Stack Overflow Google再怎么+1也比不上品牌的力量,看到Stack Overflow,就看到了希望,就有點(diǎn)擊的沖動。 點(diǎn)開一看,立即有“百度”(這里是“眾里尋她千百度”的縮寫)的感覺: 這就是正確答案,我們已經(jīng)驗(yàn)證過了,下面詳細(xì)描述一下解決方法: 1. 在Windows中添加一個HOME環(huán)境變量,值為%USERPROFILE%,如下圖: 2. 在“開始》運(yùn)行”中打開%Home%,新建一個名為“_netrc”的文件。 3. 用記事本打開_netrc文件,輸入Git服務(wù)器名、用戶名、密碼,并保存。示例如下:
問題解決,Git更給力了! |
|