由於手裏有一份代碼以前是直接從其它git服務器上克隆下來的,如今想本身搭建一個git服務器把這份代碼管起來。html
1.安裝git
:git
$ sudo apt-get install git
2. 建立一個git
用戶,用來運行git
服務:sql
$ sudo adduser jason
3. 建立證書登陸shell
收集全部須要登陸的用戶的公鑰,就是他們本身的id_rsa.pub
文件,把全部公鑰導入到/home/book/.ssh/authorized_keys
文件裏,一行一個。安全
此處可參考文檔:Linux ssh祕鑰生成並導入SecureCrtruby
4.初始化Git倉庫:bash
先選定一個目錄做爲Git倉庫,假定是/home/share/
,在/home/share
目錄下輸入命令:服務器
$ sudo git init --bare kernel.git
Git就會建立一個裸倉庫,裸倉庫沒有工做區,由於服務器上的Git倉庫純粹是爲了共享,因此不讓用戶直接登陸到服務器上去改工做區,而且服務器上的Git倉庫一般都以.git
結尾。app
而後,把owner改成jaosn:ssh
$ sudo chown -R jason:jason kernel.git
5. 禁用shell登陸:
出於安全考慮,第二步建立的jason用戶不容許登陸shell,這能夠經過編輯/etc/passwd
文件完成。找到相似下面的一行:
git:x:1001:1001:,,,:/home/jason:/bin/bash
改成:
git:x:1001:1001:,,,:/home/jason:/usr/bin/git-shell
這樣,git
用戶能夠正常經過ssh使用git,但沒法登陸shell,由於咱們爲git
用戶指定的git-shell
每次一登陸就自動退出。
6. 克隆遠程倉庫
如今,客戶端電腦上能夠經過git clone
命令克隆遠程倉庫了,在各自的電腦上運行:
$ git clone jason@192.168.0.100:/home/share/kenel.git Cloning into 'sample'... warning: You appear to have cloned an empty repository.
1. 將以前的代碼分支push到新搭建的git服務器
$git push jason@192.168.0.100:/home/share/kernel.git master
其中master爲本地分支,與以前代碼的遠程分支關聯
2. 在git服務器的/home/share/kernel.git目錄下就能夠看到新push的分支master
$git branch
3.客戶端克隆代碼
$git clone jason@192.168.0.100:/home/share/kernel.git
【1】https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000