git知識總結-4.git服務器搭建及遷移git倉庫 Linux ssh祕鑰生成並導入SecureCrt

1. 前言

由於手裏有一份代碼以前是直接從其它git服務器上克隆下來的,如今想本身搭建一個git服務器把這份代碼管起來。html

2. 搭建git服務器

1.安裝gitgit

$ 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.

3. 將git代碼遷移到搭建的git服務器

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

相關文章
相關標籤/搜索