Git系列(1) Windows下Git服務器搭建


  作為對前兩天Git服務器搭建的一個整理,我想分別從服務端和客戶端兩個角度來記錄下整個搭建過程,為了達到目標,我們需要哪些操作。

(一)服務端軟件和賬號的安裝配置

  我們這里只需要兩個軟件git和ssh,軟件版本如下,這兩個版本的安裝也是非常簡單,基本只要注意一點即可:安裝目錄最好不要用默認路徑,確保安裝路徑中沒有空格。其他步驟基本一路Next即可。  

Git-1.8.1.2-preview20130201.exe
Copssh_4.1.0_Installer.exe

  安裝完成后,我們要做個關聯,主要是關聯git和ssh,因為我們這里git要用ssh協議來連接服務器。操作方法是將git中的相關文件copy到ssh的bin目錄中。

  我這里這兩個軟件的安裝目錄分別為   

//我的git安裝目錄 C:\git
//我的ssh安裝目錄
E:\ssh
//大家根據自己的安裝目錄,對下文提到的相關路徑做相應調整吧
//需要copy的git文件列表如下:

  C:\Git\bin\ libiconv-2.dll

  C:\Git\libexec\git-core\git.exe

  C:\Git\libexec\git-core\git-receive-pack.exe

  C:\Git\libexec\git-core\git-upload-archive.exe

  C:\Git\libexec\git-core\git-upload-pack.exe

 //將這些文件copy到ssh的bin目錄下,我這里對應的目錄為 E:\ssh\bin

   接下來,我們需要在服務器上創建個賬號,普通賬號即可,我這里創建了個普通賬號叫git。

   有了這個賬號,我們接下來利用ssh control panel 來創建個對應的ssh賬號,對應步驟截圖如下:

 

   

 

   

  

  

  如上圖所示,這里我們選擇剛剛創建的專門賬號git

  

  這里注意下,第一項 Allow password authentication沒有勾選

  

  點擊Apply,ssh中賬號創建成功。

  至此,服務器的配置已告一段落了,我們可以在服務器上創建個倉庫,以備后續的連接測試。由於我們之前創建了一個叫git的賬號,在ssh的安裝目錄下的home目錄里面,多了一個git目錄。

  進入該目錄,右鍵選擇Git Bash,在命令行下,依次運行以下命令

  

1 mkdir myproject    //創建我的項目目錄,命名為myproject
2 cd myproject      //進入該目錄
3 touch helloworld.txt  //在目錄下創建個文件,以備后續測試 
4 git init        //初始化該倉庫
5 git add .        //當前目錄下所有文件都加入到暫存區 
6 git config --global user.email “xxx@xxx.com” //創建全局git賬號
7 git config –global user.name “Jason Huang” //創建全局git賬號
8 git commit –m “init myproject repo”//將暫存區的文件全部提交到倉庫,並添加注釋

 (二)客戶端軟件的安裝與配置

  與服務端一樣,客戶端也需要安裝下git。

  安裝完成后,需要創建個密鑰對,主要用於與服務端連接的認證。步驟比較簡單,打開Git Bash,輸入命令ssh-keygen,對於后續命令行提示輸入,一路默認回車即可。

  根據提示,默認生成的密鑰對在當前用戶目錄下的.ssh目錄下。

   

  

  接下來,為了使服務器認識我們的公鑰,我們需要將密鑰對中的公鑰上傳至服務器,用記事本打開剛剛生成的公鑰文件id_rsa.pub,復制里面的所有內容。

  再回到服務器端,在我們之前創建的ssh的賬號git對應的目錄下home/git/.ssh,新建文件authorized_keys文件,注意這里沒有文件后綴名,將剛剛復制的公鑰粘貼進去,保存好。 

  最后,要確保服務器端口22是打開的,如果沒有打開,去防火牆配置下,至少保證入站端口22是打開的,因為這里ssh連接的默認端口是22。 

  至此,客戶端相關配置基本完成。我們可以開始clone了,創建一個目錄,然后Git Bash,運行以下命令  

//這里我的服務器IP地址為192.168.1.168
git clone ssh://git@192.168.1.168:22/ssh/home/git/myproject

  順便說一下,如果之后push的過程中出現提示“Push to origin/master was rejected”,解決方案是將下面的這段配置加載服務端項目的.git目錄下的config文件中

[receive]
denyCurrentBranch = ignore

  That's all. 搭建過程中遇到了不少問題,從各位大神的文章中汲取了不少營養,非常感謝各位的分享,這里我也將我的一點經驗分享給大家,節省下大家寶貴的時間。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM