一、搭建思想(很重要?。。。?/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é)束了,其中有哪里寫的不好的,希望大家多多留言,有什么問題大家可以留言,我看到后基本上都會回答的,寫的有點啰嗦了,只是希望能給需要的人講解明白。