1. DevOps介绍
铁三角
开发 测试 运维
项目周期、产品周期
老板的想法 产品经理的构造 开发的代码实现 测试的功能测试 运维平台构建 代码的上线
开发、测试 变化、代码的更新
运维 稳定、网站能够正常运行下去
2. 版本控制系统
vcs 【版本控制系统的英文单词缩写`version control system`】
1、记录文件的所有的历史变化
2、随时可以恢复到任何一个历史状态
3、多人进行协作开发
Git 可以搭建本地仓库,也可以在全国各地搭建
SVN 集中式的版本控制,只有一个中央数据库,一旦数据库挂了,所有人就都没办法使用SVN了。
3. Git的安装与应用
1、环境准备
[root@git ~]
CentOS Linux release 7.6.1810 (Core)
[root@git ~]
3.10.0-957.el7.x86_64
setenforce 0
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
[root@git ~]
[root@git ~]
systemctl disable firewalld
systemctl stop firewalld
2、安装
yum install -y git
[root@git ~]
usage: git config [options]
Config file location
--global use global config file
--system use system config file
--local use repository config file
3、git 全局配置
git config --global user.name "qls"
git config --global user.email "123@qq.com"
git config --global color.ui true
git config --list
user.name=qls
user.email=123@qq.com
color.ui=true
[root@git ~]
-rw-r--r-- 1 root root 58 2020-03-10 10:49 .gitconfig
[root@git ~]
[user]
name = qls
email = 123@qq.com
[color]
ui = true
4、Git 初始化【创建一个工作目录,再初始化】
[root@git ~]
[root@git ~]
[root@git ~/git_data]
total 0
[root@git ~/git_data]
Initialized empty Git repository in /root/git_data/.git/
[root@git ~/git_data]
total 12
drwxr-xr-x 2 root root 6 2020-03-10 10:53 branches
-rw-r--r-- 1 root root 92 2020-03-10 10:53 config
-rw-r--r-- 1 root root 73 2020-03-10 10:53 description
-rw-r--r-- 1 root root 23 2020-03-10 10:53 HEAD
drwxr-xr-x 2 root root 242 2020-03-10 10:53 hooks
drwxr-xr-x 2 root root 21 2020-03-10 10:53 info
drwxr-xr-x 4 root root 30 2020-03-10 10:53 objects
drwxr-xr-x 4 root root 31 2020-03-10 10:53 refs
index
[root@git ~/git_data]
nothing to commit (create/copy files and use "git add" to track)
4. Git常规使用
工作目录 暂存区域 本地仓库 远程仓库
Untracked 未跟踪
Unmodified 未修改
Modified 已修改
Staged 已暂存
git status
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
nothing added to commit but untracked files present (use "git add" to track)
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
1. 先删除暂存区里面的文件,在删除工作目录中的文件
git rm --cached test.txt
rm -f test.txt
2. 直接从暂存区连同工作目录中的文件删除
[root@git ~/git_data]
[root@git ~/git_data]
方法一
1. 本地重命名,修改工作目录中文件的名称
[root@git ~/git_data]
2. 删除暂存区中的文件
[root@git ~/git_data]
3. 将重命名好的文件提交到暂存区
[root@git ~/git_data]
4. 提交到本地仓库
[root@git ~/git_data]
方法二
1、直接使用git进行重命名
[root@git ~/git_data]
2、提交到本地仓库
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
diff --git a/oldboy.txt b/oldboy.txt
index e69de29..bb81b3c 100644
--- a/oldboy.txt
+++ b/oldboy.txt
@@ -0,0 +1 @@
+111111111
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
d3afca4 modify oldboy.txt 3
4d83f58 modify oldboy.txt 2
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
1.改变了工作区中文件的内容,发现改错了。
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
2. 工作目录和暂存区都发生了改变,没有提交到本地仓库,发现改错了
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
3.修改了工作区,暂存区,也提交到了本地仓库,发现写错了
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
ef74f82 modify oldboy.txt 4
d3afca4 modify oldboy.txt 3
4d83f58 modify oldboy.txt 2
4bc8f84 modify oldboy.txt
6e588a7 mv b.txt bbb.txt
ed36a6a mv a.txt aaa.txt
74809a8 new 3 file
[root@git ~/git_data]
[root@git ~/git_data]
HEAD is now at d3afca4 modify oldboy.txt 3
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
d3afca4 modify oldboy.txt 3
4d83f58 modify oldboy.txt 2
4bc8f84 modify oldboy.txt
6e588a7 mv b.txt bbb.txt
ed36a6a mv a.txt aaa.txt
74809a8 new 3 file
[root@git ~/git_data]
d3afca4 HEAD@{0}: reset: moving to d3afca4
ef74f82 HEAD@{1}: commit: modify oldboy.txt 4
d3afca4 HEAD@{2}: commit: modify oldboy.txt 3
4d83f58 HEAD@{3}: commit: modify oldboy.txt 2
4bc8f84 HEAD@{4}: commit: modify oldboy.txt
6e588a7 HEAD@{5}: commit: mv b.txt bbb.txt
ed36a6a HEAD@{6}: commit: mv a.txt aaa.txt
74809a8 HEAD@{7}: commit (initial): new 3 file
[root@git ~/git_data]
HEAD is now at ef74f82 modify oldboy.txt 4
[root@git ~/git_data]
[root@git ~/git_data]
ef74f82 (HEAD, master) modify oldboy.txt 4
d3afca4 modify oldboy.txt 3
4d83f58 modify oldboy.txt 2
4bc8f84 modify oldboy.txt
6e588a7 mv b.txt bbb.txt
ed36a6a mv a.txt aaa.txt
74809a8 new 3 file
[root@git ~/git_data]
[root@git ~/git_data]
* master
test
[root@git ~/git_data]
[root@git ~/git_data]
master
* test
[root@git ~/git_data]
total 4
-rw-r--r-- 1 root root 0 2020-03-10 15:05 aaa.txt
-rw-r--r-- 1 root root 0 2020-03-10 12:06 bbb.txt
-rw-r--r-- 1 root root 41 2020-03-10 15:21 oldboy.txt
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
total 4
-rw-r--r-- 1 root root 0 2020-03-10 15:05 aaa.txt
-rw-r--r-- 1 root root 0 2020-03-10 12:06 bbb.txt
-rw-r--r-- 1 root root 41 2020-03-10 15:21 oldboy.txt
[root@git ~/git_data]
[root@git ~/git_data]
total 4
-rw-r--r-- 1 root root 0 2020-03-10 15:05 aaa.txt
-rw-r--r-- 1 root root 0 2020-03-10 12:06 bbb.txt
-rw-r--r-- 1 root root 41 2020-03-10 15:21 oldboy.txt
-rw-r--r-- 1 root root 0 2020-03-10 16:19 test.txt
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
total 4
-rw-r--r-- 1 root root 0 2020-03-10 15:05 aaa.txt
-rw-r--r-- 1 root root 0 2020-03-10 12:06 bbb.txt
-rw-r--r-- 1 root root 41 2020-03-10 15:21 oldboy.txt
-rw-r--r-- 1 root root 0 2020-03-10 16:19 test.txt
[root@git ~/git_data]
[root@git ~/git_data]
total 4
-rw-r--r-- 1 root root 0 2020-03-10 15:05 aaa.txt
-rw-r--r-- 1 root root 0 2020-03-10 12:06 bbb.txt
-rw-r--r-- 1 root root 0 2020-03-10 16:23 master.txt
-rw-r--r-- 1 root root 41 2020-03-10 15:21 oldboy.txt
-rw-r--r-- 1 root root 0 2020-03-10 16:19 test.txt
[root@git ~/git_data]
* master
test
[root@git ~/git_data]
total 4
-rw-r--r-- 1 root root 0 2020-03-10 15:05 aaa.txt
-rw-r--r-- 1 root root 0 2020-03-10 12:06 bbb.txt
-rw-r--r-- 1 root root 0 2020-03-10 16:23 master.txt
-rw-r--r-- 1 root root 41 2020-03-10 15:21 oldboy.txt
-rw-r--r-- 1 root root 0 2020-03-10 16:19 test.txt
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
111111111
2222222222
3333333333
44444444
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
111111111
2222222222
3333333333
44444444
<<<<<<< HEAD
aaaaaaaaaa
=======
bbbbbbbbbb
>>>>>>> test
[root@git ~/git_data]
38fca18 (HEAD, master) modify master
[root@git ~/git_data]
[root@git ~/git_data]
[root@git ~/git_data]
111111111
2222222222
3333333333
44444444
aaaaaaaaaa
[root@git ~/git_data]
[root@git ~/git_data]
111111111
2222222222
3333333333
44444444
bbbbbbbbbb
[root@git ~/git_data]
[root@git ~/git_data]
111111111
2222222222
3333333333
44444444
aaaaaaaaaa
[root@git ~/git_data]
[root@git ~/git_data]
* master
[root@git ~/git_data]
-a 设置标签版本
-m 设置注释
git tag -a v1.0 871669a -m "注释信息"
git tag
git show v1.0
git tag -d v1.0
1、查看所有标签,找到你想回滚的标签
2、查看指定标签的详细信息
3、根据标签的详细信息去找 git reflog 历史记录中的你想恢复的信息
4、回滚 git reset --hard 568ec7a
5. Git命令精简
工作目录 暂存区域 本地仓库 远程仓库
Untracked 未跟踪
Unmodified 未修改
Modified 已修改
Staged 已暂存
git status
git add test.txt
git add .
git commit -m "new 3 file"
echo "2222222222" >> oldboy.txt
git commit -am "modify oldboy.txt 2"
git rm -f test.txt
git rm --cached test.txt
rm -f test.txt
git mv b.txt bbb.txt
git commit -m "mv b.txt bbb.txt"
mv a.txt aaa.txt
git rm --cached a.txt
git add .
git commit -m "mv a.txt aaa.txt"
git diff oldboy.txt
git diff --cached oldboy.txt
git reflog
git log
git log --oneline
d3afca4 modify oldboy.txt 3
标签 注释
4d83f58 modify oldboy.txt 2
git log --oneline --decorate
git log -p
git log -1
git checkout -- aaa.txt
git checkout aaa.txt
git reset HEAD oldboy.txt
git reflog
git log --oneline
git reset --hard d3afca4
git branch
* master
test
git branch test
git checkout test
git branch -d test
git merge test
git merge master
git checkout master
vim oldboy.txt
git commit -am "commit modify oldboy.txt"
-a 设置标签版本 -m 设置注释
git tag -a v1.0 871669a -m "注释信息"
git tag
git show v1.0
git tag -d v1.0
1、查看所有标签,找到你想回滚的标签
2、查看指定标签的详细信息
3、根据标签的详细信息去找 git reflog 历史记录中的你想恢复的信息
4、回滚 git reset --hard 568ec7a
git remote
origin
git remote rename origin ycck
git remote -v
origin git@10.0.0.81:OPS/dzp.git (fetch)
origin git@10.0.0.81:OPS/dzp.git (push)
git remote add ycck git@10.0.0.81:OPS/git_data.git
git remote remove ycck
git pull git@10.0.0.81:OPS/git_data.git
rm -rf git_data
git clone git@10.0.0.81:OPS/git_data.git
git push -u origin master