GIT學習-03服務器上的Git

注意 本人的博客都遷移到本人自己搭建的博客地址,通過此處可查看。

一、Git在服務器上

    遠程倉庫時一個裸倉庫(bare repository):一個沒有當前工作目錄的倉庫,僅存放Git的數據,即工作目錄中的.git子目錄內的內容就是裸倉庫 

1、協議

    Git可以使用的協議有:本地傳輸、SSH協議、Git協議和HTTP協議(除了HTTP協議外,其他協議都需要在服務器端安裝並運行Git)。 
    1.1 本地協議 
        簡單的說就是硬盤上的另一個目錄,常見的是團隊成員對一個共享的文件系統有用訪問權限 
        ①、克隆倉庫 
           git clone  /opt/git/project.git 
        ②、添加本地倉庫作爲現有Git項目的遠程倉庫 
           git remote add local_proj opt/git/project.git 
        ③、優點:簡單、同時保留現存文件的權限和網絡訪問權限;缺點:難以控制從不同位置來的訪問權限,最主要的是訪問數據的速度慢。 

1.2 SSH協議

    最常用的一種Git傳輸協議,其原因:SSH協議也是唯一同時支持讀寫操作的網絡協議;SSH同時也是一個驗證授權的網絡協議;因爲普通,所以架設容易 
    ①、克隆倉庫 
       git clone ssh://user@server/project.git 
       git clone user@server/project.git :不指名協議,Git默認SSH 
    ②、優點:可以對網絡倉庫進行寫的權限;架設簡單;訪問的安全性可以保障,所有數據的傳輸都是加密和授權的;高效性,在傳輸之前會壓縮數據;缺點:不能進行匿名訪問,不利於開源項目 

1.3 Git協議

   包含在Git軟件包中的特殊守護進程;它監聽一個提供類似於SSH服務器的特點端口(9418),而無需任何授權。 

1.4 HTTP/S協議

   架設的簡便性:將Git的裸倉庫文件放在HTTP的根目錄下,配置一個特定的post-update掛鉤(hook)就OK了。 
   ①、通過HTTP對倉庫進行讀取: 
      cd /var/www/htdocs 
      git clone --bare /path/to/git_prj gitprj.git 
      cd gitprj.git 
      mv hooks/post-update.sample hooks/post-update 
      chmod a+x hooks/post-update 
      git update-server-info:確保HTTP的正常工作 
   ②、優點:易於架設,可以加密傳輸內容;使用特定簽名的SSL證書;一個額外的好處--HTTP是一個常見的協議,以至於企業級防火牆都允許其端口的通信;缺點:客戶端效率較低,克隆或者下載倉庫內容花費時間較多,網絡開銷大,常被稱爲傻瓜(dumb)協議。 

二、在服務器上部署Git

    在架設之前首先把現有倉庫導出爲一個裸倉庫:git clone --bare prjName prjName.git,並且prjName.git的目錄中已經有一份Git目錄數據的副本。即:cp -Rf prjName/.git prjName.git 

2.1 將裸倉庫移到服務器上

    訪問:scp -r prjName.git [email protected]:/opt/git 
    讀寫:git clone [email protected]:/opt/git/prjName.git 
    有讀寫就有推送權限:git init --shared:Git會自動修改倉庫目錄的組權限爲可寫。 
    注意:若是在一個不公開的項目上合作,僅僅需要一個SSH服務器和裸倉庫就OK了。 

2.2 SSH連接

    ①、爲每個人建立一個賬戶,反覆使用adduser添加用戶設置密碼——不可取。 
    ②、在主機上建立一個Git賬戶,讓每個需要寫權限的人發送一個SSH公鑰,然後加入git賬戶的~/.ssh/authorized_keys文件; 
    ③、讓SSH服務器通過某個LDAP服務或者已經設定好的集中授權機制,進行授權。 

三、生成SSH公鑰

    SSH公鑰默認存儲在賬戶的主目錄下的~/.ssh目錄,查看是否有id_dsa或者id_rsa,有.pub後綴的文件就是公鑰,另一個文件這是密鑰。 
    3.1 創建SSH公鑰:ssh-keygen 

這裏寫圖片描述
將公鑰發給需要的人就OK。
公鑰的內容:
這裏寫圖片描述

其他關於git使用文檔請看:

  1. git學習-01基礎
  2. gitx學習-02分支
  3. git學習-04git-svn的使用
發佈了53 篇原創文章 · 獲贊 29 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章