git简述
1. DevOps
Development和Operations的组合。
可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。
减少变更范围。
加强发布协调。
自动化。
更小、更频繁的变更──意味着更少的风险。
让开发人员更多地控制生产环境。
更多地以应用程序为中心来理解基础设施。
定义简洁明了的流程。
尽可能地自动化。
促成开发与运营的协作。
2. git
分布式版本控制系统,是当前最流行的版本控制软件。
3. 公开的代码仓库
github.com 国外
gitee.com 国内--码云
4. 版本控制系统分类
(1)集中式:代码集中存储在中央服务器,开发者的客户端只有部分自己的代码,假如中央服务器出问题,会出现数据丢失。
传统的版本控制系统:CVS SVN
(2)分布式:每台服务器都拥有所有代码,任意一台服务器崩溃,从其他服务器复制过来就好。
git基本命令
1. 声明自己的名字和邮箱
1. [root@git ~]# git config --global user.name root 2. 3. [root@git ~]# git config --global user.email root@qq.com
2. 创建版本库目录
1. [root@git ~]# mkdir /data 2. 3. [root@git ~]# cd /data 4. 5. [root@git data]# git init //初始化当前目录为版本库
初始化空的 Git 版本库于 /data/.git/
自动生成.git目录:
branches #分支目录
config #定义目录特有的配置选项
description #仅供git web使用
HEAD #指定当前的分支
hooks #git钩子文件
info #包含一个全局排除文件(exclude)
objects #存放所有的数据内容
refs #指针文件
index #暂存区文件
3.上传代码
data目录下创建一个文件模拟代码。
1. [root@git data]# cat readme.txt //创建文件名(任意) 2. //下面填写一些内容模拟代码 3. aaaaaaaaaa 4. bbbbbbbbbb 5. ccccccc
(1)上传到暂存区
1. git add readme.txt #单个文件上传 2. 3. git add . #当前目录所有文件上传 4. 5. git status #查看暂存区 6. 7. git rm --cached readme.txt #把文件从暂存区撤销 8. 9. git checkout -- readme.txt #已经提交到暂存区,之后再修改内容出错,想回到上次暂存区版本
(2)上传到版本库
1. [root@git data]# git commit -m "readme V1" //双引号中的内容为描述信息。 2. 3. [master(根提交) 3baa1ce] readme V1 4. 5. 1 file changed, 3 insertions(+) 6. 7. create mode 100644 readme.txt
(3)修改readme.txt内容,使用diff命令查看异同,修改readme.txt文件加点内容,可以清楚地看到添加或减少过。
[root@git data]# git diff readme.txt
(4)查看文件版本状态,比对工作区和版本库的异同,并提示
(5)查看历史记录
查看已添加过的代码版本及详情,使用git log命令。
摘要重要信息,只显示版本号及描述使用git log --oneline命令。
(6)版本回滚
注意:版本回滚前,尽量备份一下当前文件。下面两个方法都可以使用。
①回滚到上个版本,HEAD^^上上版本,HEAD~10回滚到上10个版本。
1. [root@git data]# git reset --hard HEAD^ 2. HEAD 现在位于 3baa1ce readme V1
下图可以看到已经回到V1版本了,但是此功能要慎重使用,后面版本将删除。
②此功能相对上一个方法精确,直接回滚到该版本,需要使用git log --oneline查看版本号。通告git log 的版本号码回滚,仅写前7位就可以。
1. [root@git data]# git reset --hard 3baa1ce 2. HEAD 现在位于 3baa1ce readme V1
(7)回滚动作命令日志
[root@git data]# git reflog
(8)git config 常用配置选项
1. git config -e 编辑配置文件 2. git config --local -e 编辑仓库级别配置文件 3. git config --global -e 编辑用户级别配置文件 4. git config --system -e 编辑系统级别配置文件 5. git config 添加配置项目 6. git config --global user.email “you@example.com” 7. git config --global user.name “Your Name” 8. git config 添加别名 9. git config --global -e 10. 添加: 11. [alias] 12. st = status 13. co = checkout 14. br = branch 15. mg = merge 16. ci = commit 17. md = commit --amend 18. dt = difftool 19. mt = mergetool 20. last = log -1 HEAD 21. cf = config 22. line = log --oneline
分支
区别于主代码库,创建出来用于新增功能或模块的分支库,仅用户自己有权访问,修改后合并,一般用于更新版本或添加补丁。
1. 查看分支
1. [root@git data]# git branch //默认master 2. 3. * master
2. 创建分支
[root@git data]# git branch ops //创建ops分支
切换到ops分支
1. [root@git data]# git checkout ops 2. 3. 切换到分支 'ops'
创建并切换到新的分支
1. [root@git data]# git checkout -b dev 2. 3. 切换到一个新分支 'dev'
3. 切换到主分支
1. [root@git data]# git checkout master 2. 3. 切换到分支 'master'
4. 合并分支
(1)先切回master
1. [root@git data]# git checkout master 2. 3. 已经位于 'master'
(2)合并分支
[root@git data]# git merge dev
5. 删除分支
[root@git data]# git branch -D dev
6. 分支合并冲突
制造冲突:先在分支修改文件,提交;然后回到master,再修改文件相应内容,提交;最后,合并分支,出现冲突。
删除冲突文件内容:带>>>>>>>>> ================= 行,保留想要的内容,再commit。
注:为了避免合并冲突,尽量不要在master分支修改代码
Gitlab
Gitlab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过
Web 界面进行访问公开的或者私人的项目
安装Gitlab
1. 安装前提软件
[root@gitlab ~]# yum -y install curl policycoreutils openssh-server openssh-clients postfix
2. 下载清华gitlab安装包
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
3. 复制rpm包到虚拟机,yum安装
本次案例中使用rpm安装了。
[root@git ~]# rpm -ivh /media/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
4. 修改配置文件,指定ip地址
1. [root@git ~]# vim /etc/gitlab/gitlab.rb 2. 3. external_url 'http://192.168.1.4' //指向gitlab主机
5. 配置启动 gitlab
[root@git ~]# gitlab-ctl reconfigure
查看状态
[root@git ~]# gitlab-ctl status
6. gitlab服务管理命令(开启start/关闭stop/重启restart)
[root@git ~]# gitlab-ctl start
7. 登录gitlab
访问web页面http://192.168.1.4
输入两次新密码(8位)后进入登录页面。
管理员:root
密码:初始配置新密码,最少8位。
部署Gitlab
1. 取消注册功能
防止他人随意注册用户,登录后取消注册功能。
登录gitlab→admin area(顶部菜单栏小扳手图标)→左侧面板settings→Sign-up Restrictions→去除勾选sign-up enabled→下拉选最下面save保存。
2. 修改登录欢迎界面
登录gitlab→admin area→Appearance→填写管理员联系方式和logo→save。
3. 项目创建流程
(1)创建group
登录gitlab→admin area→new group→填写组名→下拉界面create group。
(2)创建用户
登录gitlab→admin area→new user→添加用户名、邮箱→下拉界面create user→右上角点edit→修改密码。