大綱:git
1、前言github
2、Git 服務器搭建shell
3、增長遠程倉庫vim
4、從遠克隆倉庫安全
5、總結bash
注,測試機 CentOS 5.5 x86_64,Git 服務器版本:git version 1.8.2.1,客戶端版本:git version 1.9.2.msysgit.0。全部軟件請到這裏下載:http://msysgit.github.io/。服務器
1、前言ssh
在上一篇博文中咱們主要講解了,Git 本地倉庫的管理。你們不再用然也文件的管理與備份了。Git 都幫你搞定,嘿嘿!那有博友會說了,你上一篇的講的內容SVN都能實現,你那Git也沒什麼了不得的嘛?嘿嘿,我想說的是在衆多的版本控制確定有相同的功能,可是咱們還得看一些特別而且實用的功能吧,今天的咱們就爲你們演示Git的特殊功能(之一)——遠程版本庫。分佈式
你們都知道Git是分佈式版本控制器,同一個版本庫能夠在不一樣的客戶端上使用。因此呢,必須的一臺主服務器,這樣的全部的客戶端可能「克隆」這個原始版本庫,而且每臺客戶端的版本庫都會同樣,嘿嘿。因此說呢,想要多人一塊兒開發必需要有一臺Git服務器。這樣其餘人就能夠從這服Git服務器上克隆一份到本身的電腦上,也能夠把各自的代碼提交到遠程服務器的版本庫裏,而且能夠拉取別人提交的代碼。是否是很方便呢,嘿嘿!那有博友會說了,咱們沒有多於的電腦搭建Git服務器怎麼辦?那我只想說,也是能夠的。由於有個網站叫GitHub。這個網站提供Git版本庫的管理。你只要到GitHub網站上註冊一個帳號,就能夠免費得到一個Git遠程倉庫,是否是很神奇呢?再這裏咱們要感謝開源,感謝開源精神。ide
上面已經說的比較清楚了,咱們要得到Git遠程倉庫實現多人開發的目的,咱們有兩個辦法:
本身搭建Git服務器
選擇開源的GitHub
我這裏主要講解本身搭建服務器,畢竟企業裏找臺服務器仍是很容易的,嘿嘿。至於沒有服務器的朋友想要使用GitHub咱們會在後面的文章裏詳細講解GitHub。好了,下面咱們就來搭建本身的Git服務器。
2、Git 服務器搭建
下面咱們就來搭建Git服務器,嘿嘿!其實呢,Git服務器搭建在前面的文章中已經講過了,下面咱們來簡單的給你們演示一下,嘿嘿!
[root@test ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm [root@test ~]# yum list [root@test ~]# yum install -y git [root@test ~]# git --version git version 1.8.2.1
好了,到這裏咱們的Git服務器就安裝完成了,嘿嘿。比較簡單吧!
3、增長遠程倉庫
1.增長git用戶來運行git服務
[root@test ~]# mkdir -pv /data/git mkdir: created directory `/data/git' [root@test ~]# useradd -r -d /data/git git
2.建立一個git倉庫並初始化一個空庫
[root@test git]# cd /data/git/ [root@test git]# ls [root@test git]# git init --bare project1.git Initialized empty Git repository in /data/git/project1.git/ [root@test git]# cd project1.git/ [root@test project1.git]# ls
branches  config  description  HEAD  hooks  info  objects  refs
經過上面的命令,Git 就會建立一個裸倉庫,裸倉庫沒有工做區,由於服務器上的Git倉庫是爲了共享用,因此不讓用戶直接登陸到服務器上去修改工做區,通常服務器上的Git倉庫都是以.git結尾。而後咱們再修改目錄的全部者。
[root@test project1.git]# chown -R git.git /data/git/* [root@test project1.git]# ll total 32 drwxr-xr-x 2 git git 4096 May 20 17:30 branches -rw-r--r-- 1 git git   66 May 20 17:30 config -rw-r--r-- 1 git git   73 May 20 17:30 description -rw-r--r-- 1 git git   23 May 20 17:30 HEAD drwxr-xr-x 2 git git 4096 May 20 17:30 hooks drwxr-xr-x 2 git git 4096 May 20 17:30 info drwxr-xr-x 4 git git 4096 May 20 17:30 objects drwxr-xr-x 4 git git 4096 May 20 17:30 refs
3.禁用git用戶登陸
[root@test project1.git]# vim /etc/passwd [root@test project1.git]# cat /etc/passwd | grep git git:x:101:105::/data/git:/usr/bin/git-shell
咱們出於安全的考慮,修改git用戶的shell。我這裏修改成/usr/bin/git-shell。這樣git用戶就沒法登陸系統,由於咱們指定的是git-shell每次登陸就會自動退出的,嘿嘿。好了,到這裏咱們Git倉庫就初始化完成了。下面咱們來演示在客戶端克隆遠程倉庫……
4、從遠程克隆倉庫
1.客戶端生成ssh登陸公鑰
2.查看生成的ssh公鑰
3.將生成的公鑰發送git服務器上(由於我這裏就能管理git服務器因此我直接scp了,不能管理git服務器的開發人員請將公鑰發給管理員並進行相關操做)
[root@test ~]# cd /data/git/ [root@test git]# ls project1.git [root@test git]# ls -a .  ..  project1.git [root@test git]# mkdir .ssh [root@test git]# ls project1.git [root@test git]# ls -a .  ..  project1.git  .ssh [root@test git]# cd .ssh/ [root@test .ssh]# vim authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwMU4FKB6NRc3XSoIunWsdvVVuSoncbVb5Al6lB3ciswBVd++YmJFhqwkITNGccrO5sycROs9+Fbjgd6oBSzNuaBtCIbwNNsEyM/henTl2euI3XsnJQ/ITr6c/q0P3WoGl4E2QFQ2kZqs+1eDC0CgHcBrqvFv1Jr414sVYK9lfZwIF+jDdtaBOrSJuq1Agx9pGUFUEB4tQfkXxsWm/MvOmKAVvduKDE1eenUEL9zzyeELPcSXLe3NOoTjZhkX6EEXxQR1ZiZRFywLpfM4qopZ10to2KIUyVtzw6hx6V3cg7kn40lYVW0EAMATw9dVldwcRUI+kJzJSKUTKDVSwY3/+Q== root@CHENMINGQIAN [root@test .ssh]# cat authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwMU4FKB6NRc3XSoIunWsdvVVuSoncbVb5Al6lB3ciswBVd++YmJFhqwkITNGccrO5sycROs9+Fbjgd6oBSzNuaBtCIbwNNsEyM/henTl2euI3XsnJQ/ITr6c/q0P3WoGl4E2QFQ2kZqs+1eDC0CgHcBrqvFv1Jr414sVYK9lfZwIF+jDdtaBOrSJuq1Agx9pGUFUEB4tQfkXxsWm/MvOmKAVvduKDE1eenUEL9zzyeELPcSXLe3NOoTjZhkX6EEXxQR1ZiZRFywLpfM4qopZ10to2KIUyVtzw6hx6V3cg7kn40lYVW0EAMATw9dVldwcRUI+kJzJSKUTKDVSwY3/+Q== root@CHENMINGQIAN
4.客戶端克隆遠程倉庫到本地
5、總結
好了,到這裏咱們的遠程倉庫管理就到這裏結束了,在下篇博客中咱們主要講解Git 分支管理。最後,但願你們有所收穫吧^_^……