Git在CentOS下搭建私有的git伺服器
伺服器端:
第一步:配置git
1.1 從yum上安裝git
yum –y install git
1.2 檢視git版本:安裝完成後,在伺服器端輸入
git --version
1.3 建立使用者:在伺服器中建立一個git專屬使用者
//以下為CentOS下的使用者,賬戶密碼自定義 useradd git passwd git
1.4禁止該git使用者使用shell登入系統(為了安全性,一般都禁止)
vi /etc/passwd
按i進入編輯模式,在最後一行將git使用者修改成以下配置
git:x:1000:1000::/home/git:/usr/bin/git-shell
第二步:配置遠端倉庫
2.1建立一個空倉庫
我們選擇在路徑:cd /home/下先建立一個使用者目錄,在使用者目錄下建立一個git倉庫
cd /home
mkdir git
cd git
git init --bare LearnProject.git
到這裡,空倉庫已經建立成功 ,倉庫的路徑為:/home/git/LearnProject.git
2.2為剛剛建立的使用者git賦予許可權
輸入以下命令,為git使用者賦予許可權
//chown -R 使用者名稱:組名 檔案 chown -R git:git LearnProject.git //建議home以及git資料夾都賦許可權
第三步:開啟 RSA 認證
進入/etc/ssh目錄,編輯 sshd_config
cd /etc/ssh
vi ssh_config
按i進入插入模式,開啟以下三個配置的註釋(帶#為註釋),按ESC退出插入模式,按:wq儲存
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
儲存完成後,重啟sshd服務
/etc/rc.d/init.d/sshd restart //這個執行失敗則執行下面的命令 service sshd restart
至此,伺服器端git配置完成;
客戶端
第一步:配置git
1.1安裝git
在Linux上參考伺服器端安裝git,在Windows下教程很多,安裝也傻瓜式,這裡不再贅述
1.2開啟gitbash建立git使用者
git config --global user.name "LiYu" git config --global user.email "[email protected]"
1.3建立與伺服器通訊的金鑰
在gitbash中,輸入以下命令,為自己的郵箱建立一個金鑰
ssh-keygen -t rsa -C "[email protected]"
一路enter下去
這時候,系統已經為我們建立了一個公鑰和金鑰,id_rsa是金鑰,不能告訴任何人,id_rsa.pub是公鑰,可以公開;
1.4將本地的公鑰新增到伺服器上
1.4.1 通過客戶端命令列將本地公鑰新增進遠端伺服器中
在gitbash下,輸入以下命令(ip地址換成你git伺服器的地址)
ssh git@47.97.194.255 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
1.4.2手動將公鑰新增到伺服器中
在1.3中,我們建立了一個公鑰,以Windows系統為例子,我們先找到這個檔案。這個檔案的路徑在:
C:\Users\使用者名稱\.ssh\id_rsa.pub
用記事本的方式開啟,我們會得到一串金鑰
將以上Ctrl+A全選然後複製。
在伺服器端,我們用vi編輯器訪問authorized_keys,將以上資訊貼上進其中
vi /home/git/.ssh/authorized_keys
然後:wq儲存。
通過以上1.4.1和1.4.2兩種方法,我們就將本地的公鑰新增進伺服器中了。如果發現該目錄下沒有.ssh檔案,我們可以手動建立一個,並新增一個authorized_keys
第二步:克隆遠端倉庫
將遠端空倉庫克隆到本地
2.1建立本地資料夾
假設我們在D:/gitRepo/gitTest下建立一個用於本地的git倉庫資料夾
cd D:
mkdir gitRepo
cd gitRepo
mkdir gitTest
2.2克隆遠端倉庫
//埠在22的情況下 git clone git@47.97.194.255:/home/git/LearnProject.git //埠在非22的情況下(如5000) git clone ssh://[email protected]:5000/home/git/LearnProject.git
第三步:push/pull專案
做完以上伺服器端/客戶端各兩步的內容,你的本地git已經可以和git伺服器進行通訊了,此時我們可以進行常規的專案push和pull了。
3.1為倉庫新增內容
這裡我們隨便把自己的一個專案丟進去(或者隨意建立一個檔案亦可,空資料夾git不會識別)
3.2 提交修改
然後執行以下命令
cd LearnProject/
git add .
git commit -m 初始化專案
這時候,我們就為本地建立了一次commit
3.3push本地修改
執行以下命令
// origin 是遠端倉庫的別名,可以通過 git remote -v 檢視 //master 是預設主分支 git push origin master
見到以上內容,便說明push成功。
3.3git伺服器遠端倉庫檢視commit
進入到伺服器遠端倉庫的目錄
cd /home/git/LearnProject.git
git log