GIT學習 03伺服器上的Git

2021-08-10 18:08:55 字數 2322 閱讀 6130

注意本人的部落格都遷移到本人自己搭建的部落格位址,通過此處可檢視。

遠端倉庫時乙個裸倉庫(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的正常工作

在架設之前首先把現有倉庫匯出為乙個裸倉庫: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目錄,檢視是否有id_dsa或者id_rsa,有.pub字尾的檔案就是公鑰,另乙個檔案這是金鑰。 

3.1 建立ssh公鑰:ssh-keygen

將公鑰發給需要的人就ok。

公鑰的內容:

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

git學習-01基礎

gitx學習-02分支

git學習-04git-svn的使用

伺服器上的 Git 在伺服器上搭建 Git

現在我們將討論如何在你自己的伺服器上搭建 git 服務來執行這些協議。note 這裡我們將要演示在 linux 伺服器上進行一次基本且簡化的安裝所需的命令與步驟,當然在 mac 或 windows 伺服器上同樣可以執行這些服務。事實上,在你的計算機基礎架構中建立乙個生產環境伺服器,將不可避免的使用到...

伺服器上的 Git 在伺服器上搭建 Git

現在我們將討論如何在你自己的伺服器上搭建 git 服務來執行這些協議。note 這裡我們將要演示在 linux 伺服器上進行一次基本且簡化的安裝所需的命令與步驟,當然在 mac 或 windows 伺服器上同樣可以執行這些服務。事實上,在你的計算機基礎架構中建立乙個生產環境伺服器,將不可避免的使用到...

Git學習 搭建Git伺服器

搭建環境 伺服器端 centos 6.5 ip 192.168.101.129 客戶端 centos 6.5 windows 伺服器端 建立repository版本庫,例如 srv test.git git init bare 建立乙個裸倉庫,沒有工作區,目的是不讓使用者直接登入到伺服器上去改工作區...