如何搭建Git伺服器

2021-10-06 06:56:23 字數 2709 閱讀 2958

本文將介紹如何在linux系統上搭建git伺服器以及檢視git提交記錄。

首先,我們需要一台linux伺服器,作為git服務部署的機器,一般選用ubuntu或者debian,請確保擁有sudo許可權並且聯網。筆者以mac電腦上的虛擬機器為例,系統為ubuntu 16.04。

我們先安裝git,命令如下:

$ sudo apt-get install git
然後,建立乙個git使用者,用來執行git服務:

$ sudo adduser git
接著,建立證書登入。收集所有需要登入的使用者的公鑰,就是他們自己的id_rsa.pub檔案,把所有公鑰匯入到/home/git/.ssh/authorized_keys檔案裡,一行乙個。注意,有可能在/home/git中沒有.ss**件夾,可以自行建立.ss**件夾和authorized_keys檔案,如果遇到許可權問題,直接用sudo操作即可。筆者將自己mac電腦的公鑰放在虛擬機器的ubuntu系統中的

/home/git/.ssh/authorized_keys檔案裡。

然後,我們建立乙個示例的git倉庫(空倉庫),假定是/srv/sample.git,在/srv目錄下輸入命令:

$ sudo git init --bare sample.git
並把然後,把owner改為git

$ sudo chown -r git:git sample.git
git:x:1001:1001:,,,:/home/git:/bin/bash
改為:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git使用者可以正常通過ssh使用git,但無法登入shell,因為我們為git使用者指定的git-shell每次一登入就自動退出。

以上為git伺服器搭建的過程,同時我們在git伺服器上建立了乙個新的空倉庫sample.git

$ git clone [email protected]:/srv/sample.git
我們利用pycharm進行兩次提交,第一次提交readme.md檔案,文件內容為"hello from git server!",第二次在此基礎上新增test.txt檔案,文件內容為"2020-05-18 10:25:00"。至於如何用pycharm提交,可以參考文章:利用pycharm操作github:倉庫新建、更新,**回滾 。截圖如下:

這時候我們再進入虛擬機器(git伺服器)中去檢視/srv/sample.git,內容如下:

可以用git log命令檢視當前分支的提交記錄,如下圖:

可以看到,我們在客戶機上提交了兩次以及每次的commit message。切換到某次具體的提交,可以用git show命令檢視提交的內容,如下圖:

當然還有很多高階的操作,這裡不再介紹。

如果我們想要在網頁中像gitlab那樣視覺化地檢視提交記錄,可以借助git instaweb命令,該命令預設配置的web伺服器軟體為lighttpd,如果git伺服器上沒有安裝,可以使用下面的命令安裝:

$ sudo apt-get install lighttpd
接著我們切換至/srv/sample.git,使用下面的命令啟動git的web檢視服務:

$ sudo git instaweb --httpd=lighttpd
在firefox中輸入**:即可見到頁面如下:

在這個**中,我們可以像gitlab一樣方便地檢視samplt.git的提交記錄,雖然功能不如gitlab強大。

如果團隊很小,把每個人的公鑰收集起來放到伺服器的/home/git/.ssh/authorized_keys檔案裡就是可行的。如果團隊有幾百號人,就沒法這麼玩了,這時,可以用gitosis來管理公鑰。另外,如果想在離線環境下也使用git來管理**,上述方法也是可行的。

搭建git伺服器:

git instaweb命令:

Git 搭建git伺服器

環境 ubuntu16.4 1.以root使用者登陸linux後台,執行下面的命令安裝git apt install git2.建立git使用者 adduser git3.建立倉庫目錄 su git mkdir p repository myself.git4.初始化倉庫 cd repository...

Git 搭建Git伺服器

在遠端倉庫一節中,我們講了遠端倉庫實際上和本地倉庫沒啥不同,純粹為了7x24小時開機並交換大家的修改。github就是乙個免費託管開源 的遠端倉庫。但是對於某些視源 如生命的商業公司來說,既不想公開源 又捨不得給github交保護費,那就只能自己搭建一台git伺服器作為私有倉庫使用。搭建git伺服器...

搭建Git伺服器

在 遠端倉庫 一節中,我們講了遠端倉庫實際上和本地倉庫沒啥不同,純粹為了7x24小時開機並交換大家的修改。github就是乙個免費託管開源 的遠端倉庫。但是對於某些視源 如生命的商業公司來說,既不想公開源 又捨不得給github交保護費,那就只能自己搭建一台git伺服器作為私有倉庫使用。搭建git伺...