Git 遠程倉庫詳解

大綱: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登陸公鑰

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

5、總結

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

相關文章
相關標籤/搜索