教你搭建git for windows服務(wù)器,絕對(duì)能成功!
????? 既然git在linux下面非常好用,為什么還要搭建git windows的服務(wù)器,因?yàn)椴皇撬械挠脩舳夹枰趌inux下面做開(kāi)發(fā),對(duì)吧,還有很多用戶選擇使用windows做開(kāi)發(fā)。
????? 看到很多網(wǎng)友嘗試部分不成功,所以對(duì)內(nèi)容部分做了修改。
? ? ? 建議安裝時(shí)都以管理員權(quán)限運(yùn)行,否則可能有些目錄創(chuàng)建什么需要權(quán)限,尤其是win7用戶。
????? 科普一下:
????? 1、TortoiseGit是什么?沒(méi)錯(cuò),是個(gè)烏龜,就像它的殼一樣,僅僅是個(gè)殼,所以離不開(kāi)真正的git(git for windows版本名字又叫msysgit,沒(méi)殼的烏龜還能叫烏龜?國(guó)外的貨就是喜歡把開(kāi)源項(xiàng)目命名為一些稀奇古怪的東西)。
????? 2、COPSSH是個(gè)什么東西? 就是一個(gè)windows平臺(tái)的SSH服務(wù)器。
????? 3、Git-1.8.3-preview20130601.exe是個(gè)什么東西?這就是真正的git。
????? 4、使用TortoiseGit里面自帶的PuTTY Key Gen生成的密鑰對(duì)(公鑰和私鑰)為什么還要轉(zhuǎn)換? COPSSH根本不用生成任何key的,只需要添加客戶端提供上來(lái)的公鑰即可。
?????
,基本上能成功90%,但是最終還是會(huì)出現(xiàn)這樣的錯(cuò)誤,
比如:
Disconnected:No supported authentication methods available (server sent:publickey,keyboard-interactive)
比如使用Git Clone 怎么都Clone不下來(lái)代碼等等。
比如:
fatal: protocol error: bad line length character: Micr
這樣的協(xié)議錯(cuò)誤,應(yīng)該選擇Linux shell and sftp,不應(yīng)該選擇windows shell。
開(kāi)始進(jìn)入正題:
所以需要注意下面的步驟。
1、添加好了用戶以后,在COPSSH Pannel里面添加好為windows創(chuàng)建的用戶,比如名字叫g(shù)it,看好了Password authentication可是沒(méi)有勾選的。
2、重點(diǎn)在這一步,修改配置文件,找到COPSSH安裝的目錄下面的etc目錄,比如C:SSHetc,用記事本打開(kāi)ssh_config和sshd_config這兩個(gè)文件,兩個(gè)文件都要修改。
修改如下內(nèi)容:
??????? 找到PasswordAuthentication,如果前面有#號(hào),刪掉,如果后面是yes,改成no
??????? PasswordAuthentication no
??????? 找到PubkeyAuthentication,如果前面有#號(hào),刪掉,如果后面是no,改成yes
??????? PubkeyAuthentication yes
??????? 找到Port 22,刪除掉前面的#號(hào)
??????? Port 22
3、看下圖,一目了然,別告訴我你不知道這個(gè)軟件從哪里打開(kāi)的,既然安裝了烏龜TortoiseGit,當(dāng)然是要去它的開(kāi)始菜單里面找了。保存好私鑰用于后面同步時(shí)Load用。
4、打開(kāi)COPSSH安裝目錄下的homegit.ssh目錄,打開(kāi)authorized_keys文件,將剛才上一步生成的公鑰,粘貼進(jìn)來(lái),點(diǎn)保存,退出。例如下圖:
5、重新啟動(dòng)COPSSH,方法兩種,
????? 一種是點(diǎn)綠色按鈕,變紅后,再次點(diǎn)即可變綠色,綠色代表已經(jīng)正常運(yùn)行,提示Service is running,如果配置的有問(wèn)題,有時(shí)候會(huì)出現(xiàn),你點(diǎn)一下那個(gè)紅色按鈕,程序沒(méi)任何提示就直接關(guān)閉了,在這里不得不罵一下這個(gè)軟件的開(kāi)發(fā)人員,真是傻逼一個(gè)。就算是程序出錯(cuò)了,來(lái)個(gè)Messagebox提示一下用戶會(huì)死嗎?而是直接給退掉了,真奇葩。
????? 另一種是進(jìn)入windows服務(wù)里面,雙擊Openssh SSHD,點(diǎn)擊啟動(dòng)服務(wù),如果出現(xiàn)以下這種情況,解決方法是::
5.5、下圖說(shuō)明COPSSH運(yùn)行正常,如果不是,說(shuō)明服務(wù)沒(méi)有正常啟動(dòng),按照上面的步驟,檢查一下系統(tǒng)的相關(guān)服務(wù)是否正常啟動(dòng)了:
6、同步代碼,假如服務(wù)器上已經(jīng)創(chuàng)建了版本庫(kù),如何使用烏龜軟件TortoiseGit同步下來(lái),假如同步地址是這樣(局域網(wǎng)內(nèi)):ssh://git@192.168.10.8:22/SSH/home/git/lib_database
同步成功:
后記:
有人說(shuō)要改下面的地方,真不知是怎么想的,改了反而會(huì)導(dǎo)致Git Clone時(shí)的Load Putty Key變成灰色,導(dǎo)致在客戶端上無(wú)法選擇privatekey.ppk私鑰文件。
經(jīng)網(wǎng)友評(píng)論多次反映,出現(xiàn)"git did not exit cleanly (exit code 128)"這樣的錯(cuò)誤提示,一般是由于本機(jī)和服務(wù)器之間的權(quán)限問(wèn)題,嘗試一下開(kāi)始->運(yùn)行->\192.168.10.8 回車(chē),看能不能出現(xiàn)提示用戶名和密碼的窗口,不能,則說(shuō)明之間有權(quán)限問(wèn)題,先解決這個(gè)問(wèn)題,后面應(yīng)該就可以通了。