首頁  >  文章  >  運維  >  linux上怎樣搭建git

linux上怎樣搭建git

WBOY
WBOY原創
2022-01-14 14:29:144494瀏覽

方法:1、利用「yum install git」指令安裝git;2、利用「adduser git」指令建立git使用者;3、利用「ssh-keygen-t rsa」指令建立公鑰;4、利用「git init --bare」指令初始化git倉庫。

linux上怎樣搭建git

本教學操作環境:linux7.3系統、Git2.30.0版、Dell G3電腦。

linux上怎樣搭建git

# 1. 安裝git

先安裝git,一般而言,現在的伺服器已經內建了git安裝包,我們只需要執行簡單的安裝指令即可安裝。例如:

$ yum install git        # centos
$ apt-get install git    # ubuntu

上面是直接用root登陸伺服器進行操作,也是為了示範方便。

git和mysql不一樣,mysql在安裝時,得安裝mysql-server,即mysql伺服器,git是分散式的,每一個安裝了git的電腦,既是客戶端,也是伺服器,git與git之間可以相互通信,而我們所謂的git伺服器,實際上和我們自己的電腦沒有什麼本質上的差別。但是,我們為了更有效的管理項目,都採取中心化的管理方式,因此創建一個“git伺服器”,作為其他所有人提交程式碼的最終終端。

2.建立git使用者及權限

我們當然不允許直接使用root來進行通訊互動了,所以,我們建立一個git使用者來作為今後提交程式碼的用戶。

$ adduser git

執行這條指令之後,你發現在/home目錄下多了一個git目錄,照理來說,現在,你的系統中多了這個git用戶,並且家目錄在/home/git 。但是,我們並不希望這個用戶透過ssh連接到伺服器上面去,所以,我們要禁止這個用戶使用ssh連線上去進行操作。我們透過編輯一個權限檔案來處理:

$ vi /etc/passwd

找到類似

git:x:1001:1001:,,,:/home/git:/bin/bash

在最後的/bin/bash,就是允許ssh連線操作的權限,我們把它改為/user/ bin/git-shell,結果如下:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

這樣處理好,git就不能ssh連上去了(其實是可以的,只不過會閃退)。

我們還得給git一個密碼,執行:

$ passwd git 123456(你的密码)

這個密碼用在你後面提交程式碼的時候使用。

3.公鑰

這個是git裡面比較特殊的一步操作,通訊的時候,客戶端與伺服器需要一個憑證來驗證。首先產生一個公鑰:

$ cd ~
$ ssh-keygen -t rsa

這時你自己電腦上就有一個公鑰了,但是在哪裡呢?在.ssh目錄下,.開頭的資料夾都是隱藏的,但是可以cd進去。

$ cd .ssh
$ vi id_rsa.pub

這樣就能看到你的公鑰了,把所有的內容複製下來。接下來,我們去回伺服器上面操作。

$ cd /home/git/
$ mkdir .ssh
$ cd .ssh
$ vi authorized_keys

如果是裸機,伺服器上面/home/git目錄下應該沒有.ssh目錄,所以我們自己創建,打開(自動創建)authorized_keys之後,把剛才複製下來的公鑰粘貼進去,ok了,保存退出。

4.初始化一個git倉庫

我習慣把這類東西丟到/var下去,所以,我們在/var下面創建一個git目錄

$ cd /var
$ mkdir git
$ chown -R git:git git
$ chmod 777 git
$ cd git

接下來,我們用git指令初始化一個倉庫:

$ git init --bare arepoforyourproject.git

初始化完成之後,這個空的倉庫就OK了。

注意:.git目錄必須要有可讀寫權限,因為當我們在push的時候,是使用git用戶推送到伺服器上面去,會有一個寫入的過程,如果不賦予可寫權限,push就會失敗。

5.克隆試試看

  透過複製來試​​試倉庫是否可以使用:

$ git clone git@10.0.0.121:/var/git/arepoforyourproject.git

然後會提示你輸入git的密碼,輸入進去,然後再提示你克隆了一個空白的版本庫。這說明伺服器已經OK了。

相關推薦:《Linux影片教學

以上是linux上怎樣搭建git的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn