迹忆博客
当前位置: 主页 > 学无止境 > 操作系统 > 文章

Git安装及建立本地仓库服务

发布时间: 2016-09-06 作者: 迹忆 浏览次数:

git属于分布式版本控制系统:客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。它有以下几个优点:

a. 由于任何人每次提取操作,实际上都是一次对代码仓库的完整备份,因此近乎所有的操作都可以在本地执行,速度就是相当的快,并且可以在 网络断开的时候操作仍然不受影响,可以频繁的进行提交更新,等到有网络的时候再上传到远程的镜像仓库就可以了。

b. 文档很详细,并且命令行的提示也很到 位,用起来比较得新应手,而且很多的设置与操作跟linux操作很相近(不亏是linux之父创造的)。

c. git的分支模型,相当的轻量级,被称为“必 杀技”。

下面我们来看一下如何在linux系统上安装git

Git安装

首先下载git-2.7.3.tar.gz

# wget https://www.kernel.org/pub/software/scm/git/git-2.7.3.tar.gz

然后解压源码包,进入源码目录进行安装。

# tar –zxvf git-2.7.3.tar.gz
# ./configure
# make && make install

如果顺利的话,经过上述步骤就可以安装成功git了。

这里需要注意的是安装git需要有gcc和zlib的支持。所以在安装git之前,我们需要确保我们的系统已经安装了这两个工具。

Git建立本地仓库服务

首先我们在github上clone一个项目到本地。

# git clone https://github.com/onmpw/phpApp.git

然后我们创建一个新的仓库

# git clone –bare phpApp /opt/phpApp.git
Cloning into bare repository 'phpApp.git'...
done.

这样我们就拥有了一个简单的仓库,在phpApp.git目录中应该有git目录的副本了。

接着我们把新创建的仓库放到服务器上。

# scp –r /opt/phpApp.git root@192.168.5.101:/opt/phpApp.git

此时,如果用户通过ssh连接这台服务器(5.101)并对/opt拥有可读权限,那就可以通过git克隆仓库了。

# git clone root@192.168.5.101:/opt/phpApp.git

除此之外,如果一个用户通过ssh登录到服务器,对/opt/phpApp.git目录拥有可写权限的话,那么他将自动拥有推送权限。

通过ssh登录到服务器,去到该项目目录下运行git init 命令,并且加上—shared选项的话,那么Git会自动修改该仓库目录的组权限为可写。

# ssh root@192.168.5.101
# cd /opt/phpApp.git
# git init –shared –bare

到此我们就可以通过ssh的方式克隆我们自己建的仓库并对项目进行推送。

当然了,通常情况下我们要通过git协议来实现我们的仓库服务。通过git协议其实很简单,只需要借助git的一个守护进程(类似于mysqld等服务的开启)。

# git daemon –reuseaddr –base-path=/opt/ /opt/

该进程监听的端口是9418,所以说如果我们的服务之前有防火墙的话,需要设置防火墙允许9418端口进行通信。--reuseaddr 允许服务器在无需等待旧连接超时的情况下重启,--base-path 选项允许用户在未完全指定路径的条件下克隆项目,结尾的路径将告诉 Git 守护进程从何处寻找仓库来导出。

接下来我们进入项目仓库目录 phpApp.git,在每个仓库下创建一个名为 git-daemon-export-ok 的文件来实现。

# cd /opt/phpApp.git
# touch git-daemon-export-ok

该文件将允许Git提供无需授权的项目访问服务。

然后我们可以再次通过git命令来克隆项目,只不过使用的地址是git协议的。

# git clone git://192.168.5.101/phpApp.git

这里需要注意,因为我们在上面设定了映射的目录为/opt,所以git://192.168.5.101映射到目录/opt ,因此我们在写地址的时候直接是后面跟上项目仓库名称,而不再需要/opt。

好了,上面就是本节为大家介绍的git的安装及创建仓库的方法,希望本文对大家有所帮助。

除非注明转载,本站文章均为原创,欢迎转载,转载请以链接形式注明出处

本文地址: