准備工作:
1、 Git-1.8.1.2-preview20130201.exe
下載地址:
https://code.google.com/p/msysgit/downloads/list
2、 Copssh_4.1.0_Installer.exe
下載地址:
http://download.csdn.net/download/zzjzmdx/4636227
3、 TortoiseGit-1.8.5.0-64bit.msi
下載地址:
https://code.google.com/p/tortoisegit/wiki/Download?tm=2
服務器系統:Windows Server 2003 SP2
客戶端系統:Windows 7 SP1
服務器端安裝及部署
1、安裝Git
此處選擇默認安裝
此處選擇第三個,不去轉換成unix的代碼風格
完成安裝
2、安裝SSH及配置用戶
安裝在根目錄下,避免路徑中有空格,造成不必要的麻煩
此處是設置SSH的帳號密碼
安裝好後提示通過“COPSSH Control Panel”添加用戶
完成安裝
開始配置SSH用戶
選中“Users”選項卡,點擊Add按鈕添加用戶
選擇用戶名,此處可以選擇剛剛安裝SSH時設置的“SvcCOPSSH”用戶,也可以自己新建一個用戶來操作,本教程新建了一個GitAdmin的用戶作為管理賬戶。
安裝完成後還有兩個操作:
1、將Git安裝目錄D:\Program Files\Git\libexec\git-core文件夾下的git-upload-pack.exe、git.exe、git-receive-pack.exe和git-upload-archive.exe這4個文件復制到SSH的安裝路徑D:\ICW\bin下。
2、將Git安裝目錄D:\Program Files\Git\bin\libiconv-2.dll復制到D:\ICW\bin下。
3、連接Git版本庫
進入SSH安裝目錄下的bin文件夾,調用ssh.exe文件,輸入以下代碼:
“ssh GitAdmin@你的服務器名稱或者IP地址”
鍵入yes
輸入密碼
看到這個界面,代表連接成功。此時你已經通過SSH協議連接上了Git。
4、建庫操作
登錄完成後,此時的實際路徑是在D:\ICW\home\GitAdmin
建庫操作步驟如下:
mkdir testgit //創建testgit文件夾
cd testgit //進入testgit文件夾
git init //版本庫初始化,會以testgit為庫名建立一個新庫
touch first.txt second.txt //創建first.txt和second.txt文本文檔
git add . //將文件添加至Git
git config –global user.email “[email protected]”//設置郵箱地址
git config –global user.name “Your Name” //設置用戶名
git commit –m “init” //將修改提交至Git
cd ~/.ssh //進入.ssh文件夾
ssh-keygen –t rsa –C “[email protected]” //生成公鑰,默認名稱為id_rsa
至此,服務器端的安裝與配置完畢。
注:Git默認設置克隆版本修改master版本內信息後不能提交修改,如需開放權限,要修改.git/config文件後面添加如下代碼:
[receive]
denyCurrentBranch = ignore
客戶端安裝與配置
1、安裝Git
安裝步驟與服務器端相同。
2、安裝TortoiseGit
安裝完畢
此時在你的電腦鼠標右鍵就能看到Git已經集成到了系統快捷操作中。
3、配置TortoiseGit
首先設置TortoiseGit>Settings>Network中SSH client的值為”d:\Program Files(x86)\Git\bin\ssh.exe”。
新建測試local文件夾,右鍵選中Git Clone選項,會彈出對話框,輸入正確的URL,選擇Web方式,選好本地的文件夾,點擊確定。
URL正確的話,會彈出輸入密碼界面,輸入正確後,會將庫信息克隆到本地。
看到Success,恭喜你,你已經獲取到了服務器上的庫信息。
完成上面所有的步驟後,如果遠程客戶端還是沒辦法實現Git Clone,Push等正常操作,請嘗試以下內容:
1、關閉服務器電腦的所有殺毒軟件;
2、關閉服務器電腦的windows防火牆,因為防火牆會阻止Git服務器端口號22傳送數據,感覺我的客戶端最開始測試時沒法Git Clone就是端口號22被防火牆阻隔了;
3、檢查COPSSH Control Panel的服務有沒有開啟,點擊計算機->右鍵->服務->查看Openssh SSHD服務開啟沒有;
4、如果你的客戶端可以Git Clone操作,但是不能進行Push操作,可以對比.git下的config文件的參數與下面的參數有什麼區別:
[core]
repositoryformatversion = 0
filemode = false
bare = true
logallrefupdates = true
symlinks = false
ignorecase = true
我發現我之前可以Push的版本中bare = true,然而測試的版本.git中config的bare = false,遂將bare修改為true,修改完後可以正常將客戶端正常Push了,具體原因有知道的朋友可以給我留言。至於原博主所說添加[receive] denyCurrentBranch = ignore,我還沒發現有沒有作用。
5、個人感覺上面配置教程中“配置TortoiseGit”的:
設置TortoiseGit>Settings>Network中SSH client的值為”d:\Program Files(x86)\Git\bin\ssh.exe”。這一步沒有什麼作用,可以不進行設置。