如何在服務(wù)器上搭建Git版本倉庫(干貨)

一、搭建思想(很重要?。。。?/b>

主要分為兩個方面,Git倉庫和項目庫(圖用的畫圖工具畫的,太low了.......)

1、你需要在你服務(wù)器上擁有一個Git倉庫(提供者)

2、本地倉庫、你的服務(wù)器項目倉庫、或者其他服務(wù)器倉庫(實際使用者),開發(fā)或者上線的庫

二、搭建過程

我的服務(wù)器是:CentOS6.*版本(7.0以上有改動不知道好使不,大家可以踩一下坑)

1、服務(wù)器安裝git

# yum install -y git

執(zhí)行命令之后,可以查看一下版本

$ git --version

[root@iZ2zeftluibm3hesz36v3tZ ~]# git --version

git version 1.7.1

2、安裝完成之后需要在服務(wù)器上創(chuàng)建用戶進(jìn)行Git倉庫管理,并設(shè)置密碼(我設(shè)置的為git名稱的用戶)

查看一下有沒有g(shù)it這個用戶

[root@iZ2zeftluibm3hesz36v3tZ ~]# id git

添加git這個用戶

[root@iZ2zeftluibm3hesz36v3tZ ~]# useradd git

為git用戶設(shè)置密碼

passwd git

3、核心,現(xiàn)在你需要在你的服務(wù)器上選擇某一個目錄作為你的版本庫存放地址

OK,那我們現(xiàn)在首先創(chuàng)建一個倉庫的目錄

[root@iZ2zeftluibm3hesz36v3tZ home]# mkdir -p test/git

然后可以在這個目錄下創(chuàng)建你新建的項目地址

[root@iZ2zeftluibm3hesz36v3tZ git]# mkdir -p aa.git

創(chuàng)建完成之后看一下

[root@iZ2zeftluibm3hesz36v3tZ git]# ll

total 12

drwxr-xr-x 2 root root 4096 Feb ?2 15:04 aa.git

drwxrwxrwx 7 git ?git ?4096 Jan ?4 14:38 gittest.git

drwxrwxrwx 8 git ?git ?4096 Jan ?4 14:34 shop.git

然后你需要把項目進(jìn)行初始化(如下,記得不能直接git init)

[root@iZ2zeftluibm3hesz36v3tZ git]# git init --bare aa.git

Initialized empty Git repository?in/home/test/git/aa.git/

你上面看到的,aa.git是歸屬于root用戶的 ,現(xiàn)在更改為git用戶(如果你創(chuàng)建的其他用戶,更改為其他用戶權(quán)限)

[root@iZ2zeftluibm3hesz36v3tZ git]# chown -R git:git aa.git/

[root@iZ2zeftluibm3hesz36v3tZ git]# ll

total 12

drwxr-xr-x 7 git git 4096 Feb ?2 15:06 aa.git

drwxrwxrwx 7 git git 4096 Jan ?4 14:38 gittest.git

drwxrwxrwx 8 git git 4096 Jan ?4 14:34 shop.git

以上服務(wù)器的git倉庫搭建完畢,下面我們需要在本地進(jìn)行clone(開發(fā)使用)和服務(wù)器上項目存放目錄(測試庫或者項目庫)進(jìn)行克隆。

三、本地倉庫、服務(wù)器(測試)倉庫和.ssh的配置過程

1、Ok,現(xiàn)在在你本地,選擇一個目錄作為本地開發(fā)項目倉庫(39.105.78.33是你的服務(wù)器外網(wǎng)IP)你也可以解析成域名。

Administrator@EZ-20170308TRRH MINGW64 /d/test

$ git clone?git@39.105.78.33:/home/test/git/aa.git

Cloning into 'aa'...

warning: You appear to have cloned an empty repository.

如果你發(fā)現(xiàn)你報錯不能克隆,好的那是因為你沒有配置好ssh秘鑰(我的已經(jīng)配置好了所以直接成功了)

2、好的,現(xiàn)在我們開始配置ssh,在你本地家目錄,打開Git Bash?

$ ssh-keygen -t rsa -C "test.name@email"

執(zhí)行這個命令,然后你就一路傻瓜式確定(Yes)就行

然后你會發(fā)現(xiàn)C:\Users\Administrator\.ssh路徑下會有

id_rsa 私鑰

id_rsa.pub 公鑰

生成之后,在你的服務(wù)器端

[root@iZ2zeftluibm3hesz36v3tZ .ssh]# cd /etc/ssh

[root@iZ2zeftluibm3hesz36v3tZ ssh]# vim sshd_config

注釋掉下面的三個

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

保存并重啟sshd 服務(wù):

[root@iZ2zeftluibm3hesz36v3tZ ssh]# /etc/rc.d/init.d/sshd restart

我們現(xiàn)在看一下

[root@iZ2zeftluibm3hesz36v3tZ .ssh]# cd ~

[root@iZ2zeftluibm3hesz36v3tZ ~]# ll -a

然后你會發(fā)現(xiàn)有一個.ssh的,如果你需要把項目中的某一個文件夾作為項目目錄,你需要把服務(wù)器上的公鑰配置到git用戶的權(quán)限之下,也就是我們創(chuàng)建的git用戶的.ssh中的authorized_keys

[root@iZ2zeftluibm3hesz36v3tZ ~]# ssh-keygen -t rsa -C '你的郵箱'

[root@iZ2zeftluibm3hesz36v3tZ ~]# cd .ssh/

[root@iZ2zeftluibm3hesz36v3tZ .ssh]# ll -a

total 20

drwx------ ?2 root root 4096 Jan ?2 18:40 .

dr-xr-x---. 7 root root 4096 Jan 30 20:39 ..

-rw------- ?1 root root ???0 Dec 25 19:41 authorized_keys

-rw------- ?1 root root 1675 Jan ?2 18:08 id_rsa

-rw-r--r-- ?1 root root ?402 Jan ?2 18:08 id_rsa.pub

-rw-r--r-- ?1 root root ?394 Jan ?2 17:34 known_hosts

[root@iZ2zeftluibm3hesz36v3tZ .ssh]#

而我們git用戶實際放公鑰的地址不是這里,這里只是你服務(wù)器的一個公鑰

現(xiàn)在我們開始創(chuàng)建git用戶的公鑰和設(shè)置

[root@iZ2zeftluibm3hesz36v3tZ git]# pwd

/home/git

創(chuàng)建.ssh

[root@iZ2zeftluibm3hesz36v3tZ git]# mkdir .ssh

[root@iZ2zeftluibm3hesz36v3tZ git]# ll -a

total 12

drwxr-xr-x ?3 root root 4096 Jan ?2 17:23 .

drwxr-xr-x. 4 root root 4096 Jan ?2 17:22 ..

drwx------ ?2 root root 4096 Jan 30 20:39 .ssh

[root@iZ2zeftluibm3hesz36v3tZ git]#

現(xiàn)在你看到的肯定是root的權(quán)限組,現(xiàn)在需要更改為git權(quán)限

[root@iZ2zeftluibm3hesz36v3tZ git]# chown -R git:git .ssh

[root@iZ2zeftluibm3hesz36v3tZ git]# ll -a

total 12

drwxr-xr-x ?3 root root 4096 Jan ?2 17:23 .

drwxr-xr-x. 4 root root 4096 Jan ?2 17:22 ..

drwx------ ?2 git ?git ?4096 Jan 30 20:39 .ssh

然后我們回到我們本地的Git Bash 把 本地的authorized_keys導(dǎo)入到服務(wù)器

Administrator@EZ-20170308TRRH MINGW64 /d/test

$ ssh git@39.105.78.33 'cat >> .ssh/authorized_keys'?< ~/.ssh/id_rsa.pub

現(xiàn)在你可以看一下

[root@iZ2zeftluibm3hesz36v3tZ git]# cd .ssh/

[root@iZ2zeftluibm3hesz36v3tZ .ssh]# ll -a

total 12

drwx------ 2 git ?git ?4096 Jan 30 20:39 .

drwxr-xr-x 3 root root 4096 Jan ?2 17:23 ..

-rw------- 1 git ?git ?1191 Jan 10 20:41 authorized_keys

權(quán)限修改,很重要

[root@iZ2zeftluibm3hesz36v3tZ git]# chmod 700 .ssh

[root@iZ2zeftluibm3hesz36v3tZ git]# ll -a

total 12

drwxr-xr-x ?3 root root 4096 Jan ?2 17:23 .

drwxr-xr-x. 4 root root 4096 Jan ?2 17:22 ..

drwx------ ?2 git ?git ?4096 Jan 30 20:39 .ssh

[root@iZ2zeftluibm3hesz36v3tZ .ssh]# chmod 600 authorized_keys

[root@iZ2zeftluibm3hesz36v3tZ .ssh]# ll -a

total 12

drwx------ 2 git ?git ?4096 Jan 30 20:39 .

drwxr-xr-x 3 root root 4096 Jan ?2 17:23 ..

-rw------- 1 git ?git ?1191 Jan 10 20:41 authorized_keys

有了這個文件了,你就可以把你的秘鑰(C:\Users\Administrator\.ssh)或者別人的秘鑰配置在這個地方了,現(xiàn)在你就可以進(jìn)行項目的clone了。

另外你創(chuàng)建的git用戶是可以使用ssh登錄服務(wù)器的 ,如果你想要禁止的話

[root@iZ2zeftluibm3hesz36v3tZ /]# vim /etc/passwd

進(jìn)行以下修改

git:x:500:500::/home/git:/bin/bash

git:x:500:500::/home/git:/bin/bash-shell

基本上到這里就結(jié)束了,其中有哪里寫的不好的,希望大家多多留言,有什么問題大家可以留言,我看到后基本上都會回答的,寫的有點啰嗦了,只是希望能給需要的人講解明白。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容