主要分爲兩個方面,Git倉庫和項目庫(圖用的畫圖工具畫的,太low了.......)git
一、你須要在你服務器上擁有一個Git倉庫(提供者)
shell
二、本地倉庫、你的服務器項目倉庫、或者其餘服務器倉庫(實際使用者),開發或者上線的庫vim
個人服務器是:CentOS6.*版本(7.0以上有改動不知道好使不,你們能夠踩一下坑)bash
一、服務器安裝git服務器
# yum install -y git
複製代碼
執行命令以後,能夠查看一下版本
$ git --version複製代碼
[root@iZ2zeftluibm3hesz36v3tZ ~]# git --version
git version 1.7.1
複製代碼
二、安裝完成以後須要在服務器上建立用戶進行Git倉庫管理,並設置密碼(我設置的爲git名稱的用戶)app
查看一下有沒有git這個用戶ssh
[root@iZ2zeftluibm3hesz36v3tZ ~]# id git
複製代碼
添加git這個用戶工具
[root@iZ2zeftluibm3hesz36v3tZ ~]# useradd git
複製代碼
爲git用戶設置密碼測試
passwd git
複製代碼
三、核心,如今你須要在你的服務器上選擇某一個目錄做爲你的版本庫存放地址ui
OK,那咱們如今首先建立一個倉庫的目錄
[root@iZ2zeftluibm3hesz36v3tZ home]# mkdir -p test/git
複製代碼
而後能夠在這個目錄下建立你新建的項目地址
[root@iZ2zeftluibm3hesz36v3tZ git]# mkdir -p aa.git
複製代碼
建立完成以後看一下
[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
複製代碼
而後你須要把項目進行初始化(以下,記得不能直接 git init)
[root@iZ2zeftluibm3hesz36v3tZ git]# git init --bare aa.git
Initialized empty Git repository in /home/test/git/aa.git/
複製代碼
你上面看到的,aa.git是歸屬於root用戶的 ,如今更改成git用戶(若是你建立的其餘用戶,更改成其餘用戶權限)
[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
複製代碼
以上服務器的git倉庫搭建完畢,下面咱們須要在本地進行clone(開發使用)和服務器上項目存放目錄(測試庫或者項目庫)進行克隆。
一、Ok,如今在你本地,選擇一個目錄做爲本地開發項目倉庫(39.105.78.33是你的服務器外網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.
複製代碼
若是你發現你報錯不能克隆,好的那是由於你沒有配置好ssh祕鑰(個人已經配置好了因此直接成功了)
二、好的,如今咱們開始配置ssh,在你本地家目錄,打開Git Bash
$ ssh-keygen -t rsa -C "test.name@email"
複製代碼
執行這個命令,而後你就一路傻瓜式肯定(Yes)就行
而後你會發現C:\Users\Administrator\.ssh路徑下會有
id_rsa 私鑰
id_rsa.pub 公鑰
生成以後,在你的服務器端
[root@iZ2zeftluibm3hesz36v3tZ .ssh]# cd /etc/ssh
[root@iZ2zeftluibm3hesz36v3tZ ssh]# vim sshd_config
複製代碼
註釋掉下面的三個
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys複製代碼
保存並重啓 sshd 服務:
[root@iZ2zeftluibm3hesz36v3tZ ssh]# /etc/rc.d/init.d/sshd restart
複製代碼
咱們如今看一下
[root@iZ2zeftluibm3hesz36v3tZ .ssh]# cd ~
[root@iZ2zeftluibm3hesz36v3tZ ~]# ll -a
複製代碼
而後你會發現有一個.ssh的,若是你須要把項目中的某一個文件夾做爲項目目錄,你須要把服務器上的公鑰配置到git用戶的權限之下,也就是咱們建立的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用戶實際放公鑰的地址不是這裏,這裏只是你服務器的一個公鑰
如今咱們開始建立git用戶的公鑰和設置
[root@iZ2zeftluibm3hesz36v3tZ git]# pwd
/home/git
複製代碼
建立.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]#
複製代碼
如今你看到的確定是root的權限組,如今須要更改成git權限
[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導入到服務器
Administrator@EZ-20170308TRRH MINGW64 /d/test
$ ssh git@39.105.78.33 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
複製代碼
如今你能夠看一下
[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
權限修改,很重要
[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)或者別人的祕鑰配置在這個地方了,如今你就能夠進行項目的clone了。
另外你建立的git用戶是能夠使用ssh登陸服務器的 ,若是你想要禁止的話
[root@iZ2zeftluibm3hesz36v3tZ /]# vim /etc/passwd
複製代碼
進行如下修改
git:x:500:500::/home/git:/bin/bash
複製代碼
git:x:500:500::/home/git:/bin/bash-shell複製代碼
基本上到這裏就結束了 ,其中有哪裏寫的很差的,但願你們多多留言,有什麼問題你們能夠留言,我看到後基本上都會回答的,寫的有點囉嗦了,只是但願能給須要的人講解明白。