Linux构建Git代码仓库与自动化部署

Git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。git最为出色的是它的合并追踪(merge tracing)能力。

此为维基上关于git的解释 [ https://zh.wikipedia.org/wiki/Git ]

构建Git仓库的方式即可以在本地直接生成,也可以搭建一个Git服务器,本文介绍在Linux服务器上如何构建一个Git代码仓库。Let’s Start !

Git server

创建一个git用户(通过专门的git用户用于git连接,限制只能处理代码等操作)

opt目录下创建一个文件夹code

进入文件夹后创建一个git空仓

查看git仓库目录结构

HEAD:指示目前被检出的分支

config:包含项目特有的配置选项

description:仅供 GitWeb 程序使用

hooks:包含客户端或服务端的钩子脚本(hook scripts)

info:包含一个全局性排除(global exclude)文件,用以放置那些不希望被记录在 .gitignore 文件中的忽略模式(ignored patterns)

objects:存储所有数据内容

refs:存储指向数据(分支)的提交对象的指针

自动化部署

进入hooks中创建一个函数(当接收传送时自动调用的钩子),实现当代码更新时服务端运行代码同步更新(此步骤仅作参考,实际运行环境应根据需求后创建)。

内容为重写指定工作区文件,代码如下

实际情况应将/www/wwwroot/test替换为目标项目位置,此目录git用户需有权限

最后给文件执行权限

具体钩子创建与否需根据项目具体实现做不同的调整,某些大厂的代码管理是用专门的服务器进行管理,在网页控制分支合并发布,一键部署等,抽象出版本管理这层,以便代码的发布,不知道大家在项目中都是怎么实现版本迭代,分支管理的呢?(如果还是手动搬运代码就可以试着实现自己的自动化部署啦~)

Git client

将存储库(将IP替换为服务器ip地址)克隆到新目录(以下开始需使用Git BASH命令行),如在服务器上测试,可以直接输入

进入新创建的目录中,接着创建测试文件(若已在windows手动创建,此步骤可忽略),代码如下

上传到仓库中,代码如下

进入之前指定的工作区文件夹查看代码是否提交成功,或通过重复步骤一克隆一份新代码,若测试文件存在则成功。

如发生错误,有的可能是因为用户权限的原因,通过命令配置权限给git用户即可

后记

现如今代码管理已发展了诸多工具(如svn,cvs),代码托管平台(如Github,Gitlab)可供选择,要说的话,代码如同货物,适合的版本管理如同高度自动化的船舶,仅需少数船员,即可驾驶着轮船稳健驶向新航线,提高效率,迎接新世纪。

\(•ㅂ•)/ 共勉~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180608A1HSSA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励