Linux centos7.* 搭建私有git服務器

Server:

第一步:配置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

第三步:打開 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配置完成;

Client:

第一步:配置git

1.1 安裝git

在Linux上參考服務器端安裝git,在Windows下教程很多,安裝也傻瓜式,這裏不再贅述

1.2 打開git bash創建git使用者


git config --global user.name "test"
git config --global user.email "[email protected]"

1.3 創建與服務器通訊的密鑰

在git bash中,輸入以下命令,爲自己的郵箱創建一個密鑰

ssh-keygen -t rsa -C "[email protected]"

一路enter下去,如果原來有祕鑰則覆蓋即可

這時候,系統已經爲我們創建了一個公鑰和密鑰,id_rsa是密鑰,不能告訴任何人,id_rsa.pub是公鑰,可以公開;

1.4 將本地的公鑰添加到服務器上

1.4.1 通過客戶端命令行將本地公鑰添加進遠程服務器中

在gitbash下,輸入以下命令(ip地址換成你git服務器的地址)
 

 ssh [email protected] 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

1.4.2 手動將公鑰添加到服務器中

在1.3中,我們創建了一個公鑰,以Windows系統爲例子,我們先找到這個文件。這個文件的路徑在:

C:\Users\Administrator\.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 [email protected]:/home/git/LearnProject.git
 
//端口在非22的情況下(如5000)
git clone ssh://[email protected]:5000/home/git/LearnProject.git

這時候,bash會提示你克隆的倉庫是空的

至此,我們就完成了遠程倉庫的克隆。

第三步:push/pull項目
做完以上服務器端/客戶端各兩步的內容,你的本地git已經可以和git服務器進行通信了,此時我們可以進行常規的項目push和pull了。

3.1 爲倉庫添加內容

這裏我們隨便把自己的一個項目丟進去(或者隨意創建一個文件亦可,空文件夾git不會識別)

3.2 提交修改

進入LearnProject然後運行以下命令

git add .
git commit -m 初始化項目

這時候,我們就爲本地創建了一次commit

3.3 push本地修改

運行以下命令

// origin 是遠程倉庫的別名,可以通過 git remote -v 查看
//master 是默認主分支
git push origin master

見到以上內容,便說明push成功。

3.3 git服務器遠程倉庫查看commit

  進入到服務器遠程倉庫的目錄

見到以上內容,便說明push成功。

3.3 git服務器遠程倉庫查看commit

  進入到服務器遠程倉庫的目錄

cd /home/git/LearnProject.git
git log

push 已成功!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章