git
1.是一个分布式的代码管理工具
2.可以是C/S架构,也就是Client/Server
3.只要有适当的权限,每个客户端都可以下载或上传数据到服务器
git重要的三个工作区域:
工作区:写代码的目录。就是项目代码存放的目录。
暂存区:工作区与版本库之间的缓冲地带。位置是.git/index
版本库:工作区快照存放的目录。在工作区下,名为.git的目录
git分支
使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
可以按功能创建分支,分支可以合并。
git的默认分支名为master。它在功能上与用户创建的分支没有区别。
常用的分支:
-
Master: 主分支;主要是稳定的版本分支,正式发布的版本都从Master拉。
-
Develop: 开发分支;更新和变动最频繁的分支,正常情况下开发都是在Develop分支上进行的。
-
Release:预发行分支;一般来说,代表一个版本的功能全部开发完成后递交测试,测试出Bug后进行修复的分支。
-
Features: 功能分支; 其实Features不是一个分支,而是一个分支文件夹。里面包含了每个程序员开发的功能点。Feature开发完成后合入Develop分支。
-
HotFix: 最希望不会被创建的分支;这个分支的存在是在已经正式上线的版本中,发现了重大Bug进行修复的分支。
gitlab
它是一个开源的git仓库服务器。用于实现代码集中托管。
分为企业版和CE社区版。
部署方式:软件包部署、容器部署。
gitlab容器需要用到22端口,要修改ssh端口号
gitlab容器启动需要/etc/resolv.conf文件
gitlab中主要的概念
用户:为使用gitlab的用户创建的账号。
组:用户的集合。一般可以为部门创建组。将来可以在项目上为组授权,组 中所有的用户都会得到相应的权限。
项目:用于保存代码文件的空间。
CI(持续集成)/CD(持续交付)
软件程序上线流程
1.程序员将代码上传到gitlab服务器
2.云计算工程师,通过jenkins服务器自动下载gitlab上的代码
3.云计算工程师编写自动部署到服务器上的脚本
安装Jenkins服务器
安装依赖包
jenkins需要通过git下载代码,所以装git。
jenkins是java程序,所以装java
postfix和mailx是邮件程序,jenkins可以通过它们给管理员发邮件
自动化部署流程
1.程序员编写代码,推送到gitlab服务器
2.Jenkins服务器从gitlab上下载代码
3.Jenkins处理下载的代码
.删除下载目录的版本库
将下载的代码打包
计算程序压缩包的md5值
在Jenkins上安装ftp服务,共享程序压缩包
4.web服务器下载软件包,并应用(通过脚本实现) 访问测试