简介
1.DevOps: Development和Operations的组合
可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集
- 减少变更范围
- 加强发布协调
- 自动化
- 更小、更频繁的变更──意味着更少的风险
- 让开发人员更多地控制生产环境
- 更多地以应用程序为中心来理解基础设施
- 定义简洁明了的流程
- 尽可能地自动化
- 促成开发与运营的协作
2.git:分布式版本控制系统,是当前最流行的版本控制软件。
林纳斯.拖瓦兹
3.公开的代码仓库:
- github.com 国外
- gitee.com 国内–码云
4.版本控制系统分类:
- 集中式:代码集中存储在中央服务器,开发者的客户端只有部分自己的代码,假如中央服务器出问题,会出现数据丢失。传统的版本控制系统:CVS、 SVN
- 分布式:每台服务器都拥有所有代码,任意一台服务器崩溃,从其他服务器复制过来就好。git
安装Git
Git是什么?
Git对于一个程序员来说,并不陌生。Git的全称是:分布式版本控制系统。
git支持分布式部署,可以有效、高速的处理从很小到非常大的项目版本管理。
用最简单的话语解释就是,当我们在git上建立一个版本库(版本库又叫仓库,我们可以把它理解为目录),如果我们需要对文件进行修改时,可以对原来的文件进行提交并简单的说明,后续方便还原文档。
1.安装Git
[root@git ~]# yum -y install git
2.声明自己的名字和邮箱
[root@git ~]# git config --global user.name "wangwu"
[root@git ~]# git config --global user.email "[email protected]"
3.创建版本目录
[root@git ~]# mkdir /data
[root@git ~]# cd /data/
[root@git data]# git init // 初始化当前目录为版本库
初始化空的 Git 版本库于 /data/.git/
[root@git data]# ls -a
. .. .git
自动生成**.git**目录:
命令 | 解释 |
---|---|
branches | 分支目录 |
config | 定义目录特有的配置选项 |
description | 仅供git web使用 |
HEAD | 指定当前的分支 |
hooks | git钩子文件 |
info | 包含一个全局排除文件(exclude) |
objects | 存放所有的数据内容 |
refs | 指针文件 |
index | 暂存区文件 |
Git基础命令
1.上传到暂存区
命令 | 解释 |
---|---|
git add readme.txt | 单个文件上传 |
git add . | 当前目录所有文件上传 |
git status | 查看暂存区 |
git rm --cached readme.txt | 把文件从暂存区撤销 |
git checkout – readme.txt | 已经提交到暂存区,之后再修改内容出错,想回到上次暂存区版本 |
[root@git data]# vim readme.txt
111111111
[root@git data]# git add readme.txt
[root@git data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
# (使用 "git rm --cached <file>..." 撤出暂存区)
#
# 新文件: readme.txt
#
[root@git data]# git rm --cached readme.txt
rm 'readme.txt'
[root@git data]# vim test.txt
11111111
[root@git data]# git add test.txt
[root@git data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
# (使用 "git rm --cached <file>..." 撤出暂存区)
#
# 新文件: test.txt
#
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# readme.txt
[root@git data]# vim test.txt
222222222222
11111111
[root@git data]# git checkout -- test.txt
[root@git data]# cat test.txt
11111111
2.上传到版本库
[root@git data]# git add readme.txt
[root@git data]# git status
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 新文件: readme.txt
#
[root@git data]# git commit -m "add readme.txt file" //上传到版本库
[master 64e4cd2] add readme.txt file
1 file changed, 1 insertion(+)
create mode 100644 readme.txt
[root@git data]# git status
# 位于分支 master
无文件要提交,干净的工作区
3.修改readme.txt内容,使用diff命令查看异同
[root@git data]# vim readme.txt
111111111
222222222
333333333
[root@git data]# git diff readme.txt
diff --git a/readme.txt b/readme.txt
index bb81b3c..0f4b9be 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,3 @@
111111111
+222222222
+333333333
(1)如果想要提交
[root@git data]# git add readme.txt
[root@git data]# git commit -m "add readme.txt file "
[master d8184e2] add readme.txt file
1 file changed, 2 insertions(+)
4.查看版本状态,比对工作区和版本库的异同
[root@git data]# git status
5.查看历史记录
[root@git data]# git log //显示详细信息
commit d8184e24bdc83e012b607f74eeb5ad94c55dc250
Author: wangwu <[email protected]>
Date: Thu Jul 16 19:14:17 2020 +0800
add readme1.txt file
commit 3caeb4233a33cfe99fb3111c8f130608a4bc0f61
Author: wangwu <[email protected]>
Date: Thu Jul 16 19:11:26 2020 +0800
add readme2.txt file
commit ef381c4ae25a1cc46bbd2ca30ec29cc6978b2ba9
Author: wangwu <[email protected]>
Date: Thu Jul 16 19:09:23 2020 +0800
add readme3.txt file
[root@git data]# git log --oneline //显示摘要信息
d8184e2 add readme1.txt file
3caeb42 add readme2.txt file
ef381c4 add readme3.txt file
6.版本回滚
命令 解释 HEAD^ 回滚到上个版本 HEAD^^ 回滚到上上个版本 HEAD~10 回滚到上10个版本 git log 的版本号(写前7为即可) 按版本号回滚到那个版本
[root@git data]# vim readme.txt //更改内容
111111111
222222222
333333333
444444444
555555555
666666666
[root@git data]# git reset --hard HEAD^ // 回滚到上个版本
HEAD 现在位于 64e4cd2 add readme.txt file
[root@git data]# cat readme.txt
111111111
[root@git data]# vim readme.txt
111111
222222
333333
444444
[root@git data]# git log --oneline //查看版本号
3caeb42 add readme.txt file
ef381c4 add readme.txt file
[root@git data]# git reset --hard 3caeb42 //按版本号回滚
HEAD 现在位于 3caeb42 add readme.txt file
[root@git data]# cat readme.txt
111111
222222
7.回滚动作命令日志
[root@git data]# git reflog
3caeb42 HEAD@{0}: commit: add readme.txt file
ef381c4 HEAD@{1}: reset: moving to ef381c4
64e4cd2 HEAD@{2}: reset: moving to HEAD^
d8184e2 HEAD@{3}: commit: add readme.txt file
64e4cd2 HEAD@{4}: commit: add readme.txt file
ef381c4 HEAD@{5}: checkout: moving from master to master
ef381c4 HEAD@{6}: commit (initial): add readme.txt file
8.git config 常用配置选项
(1)编辑配置文件
git config -e
[root@git data]# git config --local -e //编辑仓库级别配置文件
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
~
[root@git data]# git config --global -e //编辑用户级别配置文件
[user]
name = wangwu
email = [email protected]
[root@git data]# git config --system -e //编辑系统级别配置文件
(2)添加配置项目
git config
[root@git data]# git config --global user.email “[email protected]”
[root@git data]# git config --global user.name “wangwu”
(3)添加别名
git config
[root@git data]# git config --global -e
[user]
name = wangwu
email = [email protected]
[alias]
st = status
co = checkout
br = branch
mg = merge
ci = commit
md = commit --amend
dt = difftool
mt = mergetool
last = log -1 HEAD
Git分支
区别于主代码库,创建出来用于新增功能或模块的分支库,仅用户自己有权访问,
修改后合并,一般用于更新版本或添加补丁。
1.查看分支
[root@git data]# git branch
* master
2.创建分支,切换分支
[root@git data]# git branch ops
[root@git data]# git checkout ops
切换到分支 'ops'
3.合并分支
(1)创建并切换到新的分支
[root@git data]# git branch -b dev
(2)切回master
[root@git data]# git checkout master
切换到分支 'master'
(3)合并分支
[root@git data]# git merge dev
Already up-to-date.
[root@git data]# git branch
dev
* master
ops
4.删除分支
[root@git data]# git branch -d dev
已删除分支 dev(曾为 3caeb42)。
[root@git data]# git branch
* master
ops