歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Git 遠程倉庫詳解

Git 遠程倉庫詳解

日期:2017/2/28 14:28:25   编辑:Linux教程

大綱:

一、前言

二、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服務器。

GitHub 教程系列文章

GitHub 使用教程圖文詳解 http://www.linuxidc.com/Linux/2014-09/106230.htm

Git 標簽管理詳解 http://www.linuxidc.com/Linux/2014-09/106231.htm

Git 分支管理詳解 http://www.linuxidc.com/Linux/2014-09/106232.htm

Git 遠程倉庫詳解 http://www.linuxidc.com/Linux/2014-09/106233.htm

Git 本地倉庫(Repository)詳解 http://www.linuxidc.com/Linux/2014-09/106234.htm

Git 服務器搭建與客戶端安裝 http://www.linuxidc.com/Linux/2014-05/101830.htm

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm

二、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登錄公鑰

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

五、總結

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

Git權威指南 PDF高清中文版 http://www.linuxidc.com/Linux/2013-10/91053.htm

Git 的詳細介紹:請點這裡
Git 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved