在CentOS 7中搭建Git伺服器

醬油能發表於2017-12-12

環境說明
- CentOS 7.x 最小安裝
- 配置網路連線

1. 安裝Git及建立使用者

# 安裝Git
$ yum install git

# 建立一個git使用者組和使用者,用來執行git服務
$ groupadd git
$ adduser git -g git

禁止git使用者登入:

修改/etc/passwd檔案,修改

# 找到這句:
git:x:503:503::/home/git:/bin/bash

# 改為:
git:x:503:503::/home/git:/bin/git-shell

2. 建立證書登入

$ mkdir /home/git/.ssh
$ chmod 700 /home/git/.ssh
$ touch 700 /home/git/.ssh/authorized_keys
$ chmod 600 /home/git/.ssh/authorized_keys

注意,如果是採用的sudo方式來建立git和相應的檔案的,需要設定/home/git/.ssh/的owner為git,否則還是每次要輸入密碼的。

# owner改為git
$ sudo chown -R git:git /home/git/.ssh/

編輯/home/git/.ssh/authorized_keys,把客戶端的公鑰放進去,1個公鑰1行。

附:如何建立私鑰:

# 建立私鑰,檔案位於使用者主目錄裡找到.ssh目錄,裡面有id_rsa和id_rsa.pub兩個檔案
$ ssh-keygen -t rsa -C "youremail@example.com"

3.初始化Git倉庫

$ cd /srv
$ mkdir gitrepo
$ chown git:git gitrepo/
$ cd gitrepo

# 建立一個空的Git倉庫,伺服器上的Git倉庫通常都以.git結尾
$ git init --bare project.git

# 將倉庫所屬使用者改為git
$ chown -R git:git project.git

4. 克隆倉庫

在另一臺電腦上(下面稱為:Client),安裝git,並且執行下面的命令:

$ git clone git@10.123.123.123:/srv/gitrepo/project.git

5. 驗證安裝

5.1. 推送到遠端伺服器

在本地Client的project目錄下,建立一個檔案:text.txt,內容隨意,然後上傳到遠端:

$ git push origin master

5.2. 檢驗

在本地Client的另外一個目錄下,克隆一下:

$ git clone git@10.123.123.123:/srv/gitrepo/project.git

看看text.txt檔案是否存在,內容是否對。

5.3. 常用的Git命令:

$ git add . 新增所有檔案  注意有個 . 
$ git commit -m '註釋' 提交本地
$ git push origin master提交給預設分支
$ git -rm 刪除
$ git pull origin master 從預設分支下載
$ git branch -v 檢視所有分支

參考資料

https://my.oschina.net/u/2343829/blog/644663

相關文章