Git 遠程倉庫詳解

大綱:

一、前言

二、Git 服務器搭建

三、增加遠程倉庫

四、從遠克隆倉庫

五、總結

注,測試機 CentOS 5.5 x86_64,Git 服務器版本:git version 1.8.2.1,客戶端版本:git version 1.9.2.msysgit.0。所有軟件請到這裏下載:http://msysgit.github.io/


一、前言

在上一篇博文中我們主要講解了,Git 本地倉庫的管理。大家再也不用然也文件的管理與備份了。Git 都幫你搞定,嘿嘿!那有博友會說了,你上一篇的講的內容SVN都能實現,你那Git也沒什麼了不起的嘛?嘿嘿,我想說的是在衆多的版本控制肯定有相同的功能,但是我們還得看一些特別並且實用的功能吧,今天的我們就爲大家演示Git的特殊功能(之一)——遠程版本庫。


大家都知道Git是分佈式版本控制器,同一個版本庫可以在不同的客戶端上使用。所以呢,必須的一臺主服務器,這樣的所有的客戶端可能“克隆”這個原始版本庫,並且每臺客戶端的版本庫都會一樣,嘿嘿。所以說呢,想要多人一起開發必須要有一臺Git服務器。這樣其他人就可以從這服Git服務器上克隆一份到自己的電腦上,也可以把各自的代碼提交到遠程服務器的版本庫裏,並且可以拉取別人提交的代碼。是不是很方便呢,嘿嘿!那有博友會說了,我們沒有多於的電腦搭建Git服務器怎麼辦?那我只想說,也是可以的。因爲有個網站叫GitHub。這個網站提供Git版本庫的管理。你只要到GitHub網站上註冊一個賬號,就可以免費獲得一個Git遠程倉庫,是不是很神奇呢?再這裏我們要感謝開源,感謝開源精神。

上面已經說的比較清楚了,我們要獲得Git遠程倉庫實現多人開發的目的,我們有兩個辦法:

  • 自己搭建Git服務器

  • 選擇開源的GitHub

我這裏主要講解自己搭建服務器,畢竟企業裏找臺服務器還是很容易的,嘿嘿。至於沒有服務器的朋友想要使用GitHub我們會在後面的文章裏詳細講解GitHub。好了,下面我們就來搭建自己的Git服務器。


二、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服務器就安裝完成了,嘿嘿。比較簡單吧!


三、增加遠程倉庫

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倉庫就初始化完成了。下面我們來演示在客戶端克隆遠程倉庫……


四、從遠程克隆倉庫

1.客戶端生成ssh登錄公鑰

ssh1

2.查看生成的ssh公鑰

ssh2

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.客戶端克隆遠程倉庫到本地

git clone project1

五、總結

好了,到這裏我們的遠程倉庫管理就到這裏結束了,在下篇博客中我們主要講解Git 分支管理。最後,希望大家有所收穫吧^_^……


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章