欢迎来到云服务器

系统配置

CentOS 6.5系统下搭建Git处事器教程

1 关于版本节制


版本节制是一种记录一个或若干文件内容变革,以便未来查阅特定版本修订环境的系统。有以下三种版本节制系统


1. 当地版本节制系统

很多人习习用复制整个项目目次的方法来生存差异的版本,或者还会更名加上备份时间以示区别。这么做独一的长处就是简朴。不外弊端也不少:有时候会夹杂地址的事情目次,一旦弄错文件丢了数据就没法取消规复。

为了办理这个问题,人们好久以前就开拓了很多种当地版本节制系统,大多都是回收某种简朴的数据库来记录文件的历次更新差别。图示如下,

CentOS 6.5系统下搭建Git处事器教程

 

2. 会合化的版本节制系统

会合化的版本节制系统( Centralized Version Control Systems,简称 CVCS )可以或许让在差异的开拓系统上的开拓人员协同事情。这类系统,诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的会合打点的处事器,生存所有文件的修订版本,而协同事情的人们都通过客户端连到这台处事器,取出最新的文件可能提交更新。多年以来,这已成为版本节制系统的尺度做法

CentOS 6.5系统下搭建Git处事器教程

 

3. 漫衍式版本节制系统

漫衍式版本节制系统(Distributed Version Control System,简称 DVCS ),像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不但提取最新版本的文件快照,而是把代码客栈完整地镜像下来。这么一来,任何一处协同工浸染的处事器产生妨碍,过后都可以用任何一个镜像出来的当地客栈规复。因为每一次的提取操纵,实际上都是一次对代码客栈的完整备份,

CentOS 6.5系统下搭建Git处事器教程

更进一步,很多这类系统都可以指定和若干差异的远端代码客栈举办交互。籍此,你就可以在同一个项目中,别离和差异事情小组的人彼此协作。你可以按照需要设定差异的协作流程,好比条理模子式的事情流,directadmin安装 directadmin汉化,而这在以前的会合式系统中是无法实现的。

 

2 关于Git


Git是漫衍式版本节制系统的一个完美实现,它与会合式版本节制系统SVN的根基区别如下:

Git是漫衍式的,而SVN不是

Git和SVN一样有本身的会合式版本库或处事器。但,GIT更倾向于被利用于漫衍式模式,也就是每个开拓人员从中心版本库/处事器上chect out代码后会在本身的呆板上克隆一个本身的版本库。

Git将内容按元数据方法存储,而SVN是按文件

所有的资源节制系统都是把文件的元信息埋没在一个雷同.svn,.cvs等的文件夹里。假如你把.git目次的体积巨细跟.svn较量,你会发明它们差距很大。因为,.git目次是处于你的呆板上的一个克隆版的版本库,它拥有中心版本库上所有的对象,譬喻标签,分支,版本记录等。

Git分支和SVN分支的差异

SVN的分支就是版本库中的别的一个目次,而Git的分支却是整个版本库的一个快照,并且可以在同一个事情目次下快速的在几个分支间切换。

Git没有一个全局的版本号,而SVN有

SVN的版本号实际是任何一个相应时间的源代码快照。而Git并没有这样的一个全局版本号,这也是Git缺少的最大的一个特征

Git的内容完整性要优于SVN

Git的内容存储利用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在碰着磁盘妨碍和网络问题时低落对版本库的粉碎。

 

Git的根基事情流程如下:

在事情目次中修改某些文件。

对修改后的文件举办快照,然后生存到暂存区域。

提交更新,将生存在暂存区域的文件快照永久转储到 Git 目次中。

 

3 Git处事器搭建


1. 情况陈设

系统情况:处事器端:CentOS 6.5 ,ip:192.168.56.1

               客户端:CentOS 6.5 ,ip:192.168.56.101

软件版本:处事器端:源码编译安装,git-1.9.0.tar.gz

               客户端:yum在线安装机制

 

2. 安装

2.1 处事器端:

#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

#wget http://git-core.googlecode.com/files/git-1.9.0.tar.gz

#tar zxvf git-1.9.0.tar.gz

#cd git-1.9.0

#make prefix=/usr/local all

#make prefix=/usr/local install  #root用户运行

 

查察版本号:git --version

git version 1.9.0

 

安装gitosis:gitosis为Git用户权限打点系统,通过打点处事端的/home/git/.ssh/authorized_key文件来执行对用户权限的打点,是一个python模块包

#yum install python python-setuptools

#git clone git://github.com/res0nat0r/gitosis.git

#cd gitosis/

#python setup.py install

显示Finished processing dependencies for gitosis==0.2即暗示乐成 

 

2.2 客户端安装:

#yum install git

#git --version

git version 1.7.1

 

3. ssh配置

客户端出产密钥并上传随处事器端:

#ssh-keygen -t rsa

#scp ~/.ssh/id_rsa.pub [email protected]:~/

 

处事端查察已经上传的密钥:ls ~/id_rsa.pub

 

4. 处事器上生成git用户,利用git用户并初始化gitosis

添加用户git:

#useradd -r -s /bin/sh -c 'git version control' -d /home/git git

配置权限:

#mkdir -p /home/git

#chown git:git /home/git

 

在处事器端生成打点库:

#sudo -H -u git gitosis-init < ~/id_rsa.pub

Initialized empty Git repository in /home/git//repositories/gitosis-admin.git/ Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/ 

注解:

1. 生成的gitosis-admin为Git的用户会见权限打点库,gitosis通过这个git库来打点所有git库的会见权限。

2. 通过执行初始化,该公钥的拥有者就能修改用于设置gitosis的谁人非凡Git客栈了

 

修改上传权限:

#chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

 


5. 客户端导出打点

#mkdir -p /git-repo/

#cd /git-repo/

#git clone [email protected]:gitosis-admin.git

#cd gitosis-admin

#find .

./gitosis.conf

./keydir

.[email protected]

注解:

gitosis.conf文件用来配置用户、客栈和权限的节制文件

keydir目次则是生存所有具有会见权限用户公钥的处所

.[email protected]:如前所述,该用户具有会见权限

 

6. 客户端建设及配置打点项目

#cd /git-repo/gitosis-admin

查察已经上传密钥

#ls keydir/

[email protected]

 

授权和权限节制

#vim gitosis.conf

[gitosis]

腾讯云代理

Copyright © 2003-2021 MFISP.COM. 国外vps服务器租用 梦飞云服务器租用 版权所有 粤ICP备11019662号