持续集成概述
- 持续集成概述:持续集成(continuous integration)持续集成是指开发者在代码的开发过程中,可以频繁的代码部署集成到主干,并进行自动化测试。
- 持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境。
- 持续部署:在持续交付的基础上,把部署到生产环境的过程自动化。
版本控制系统概述
什么是版本控制系统
版本控制系统(Version Control System):
是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。
版本控制解决了那些问题:
快速回滚到指定的版本,只保留变化的内容
版本控制系统SVN于Git的区别
- git是分布式的,SVN是集中式的
开发人员可以建立自己的分支,并在自己的分支上进行操作,减少了冲突
- git可以在没有网络的情况下使用
从远程库clone一个到本地库,没有网络的情况下,可以将修改提交到本地库,等有网的时候在传上去。
- git和SVN的版本控制
是通过.git和.svn文件,.git只是在本地的版本库的目录下存在,而.svn存在于每一个文件夹,当我们不需要版本控制的时候,要删除.svn很费时。
- 版本号问题
svn有明确的版本号,git对于每一个版本,都通过SHA1算法生成一个唯一标示的码,方便追溯到之前的版本。
git使用
git简介
官网地址:https://git-scm.com/
菜鸟教程:https://www.runoob.com/git/git-workflow.html
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
git基本概念
我们先来理解Git工作区、暂存区和版本库概念
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
安装和配置Git
#git安装 yum install git -y git --version #配置个人的用户名称和电子邮件地址: git config --global user.name "魏" git config --global user.email "[email protected]" git config --global color.ui "true"
如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。
查看配置信息
git config --list user.name=吉祥 user.email=1354586675@qq.com color.ui=true #或 cat /root/.gitconfig [user] name = 吉祥 email = 1354586675@qq.com [color] ui = true
创建版本库
#使用当前目录作为Git仓库,该命令执行完后会在当前目录生成一个 .git 目录。, mkdir /opt/class cd /opt/class git init #或者指定目录作为git仓库 git init /opt/class/ Initialized empty Git repository in /opt/class/.git/
git仓库添加文件
#添加文件到缓存区 git add . git commit -m ‘add three file‘
- 实验
#创建5个文件并写写入各自的文件数字 for n in 1 2 3 4 5;do echo $n >$n.txt ;done #查看文件状态,未提交缓存区 git status #提交完查看文件状态 git add . git status #提交到git仓库 git comiit -m ‘add three file‘
git修改文件名称并提交
#目录和缓存区之间的变化 git mv 5.txt 6.txt git status git commit -m ‘change file name‘ git status
git的文件对比
#缓存区与git仓库之间的变化 vim 6.txt 5 6 git diff 6.txt #本地目录和缓冲区文件对比 git diff --cached 6.txt #缓冲区文件和仓库文件对比 git add . git diff --cached 6.txt git diff 6.txt git commit -m ‘add ontline 6.txt‘ git status
实现回退功能
#查看当前的历史版本 git log --oneline git reset --hard 942bdf3 #查看所有的历史版本 git reflog --oneline git reset --hard 942bdf3
撤销修改的文件
#提交到缓冲的区文件撤回 git reset HEAD file3(文件名) git checkout -- file3(文件名) #未add到缓冲区的文件撤回 git checkout -- file3(文件名)
git管理分支
#增加一个新分支 git branch dev01 #切换分支 git checkout dev01 #在开发分支上合并主分支 git merge master -m ‘注释‘ #切回主分支 git checkout master #在主分支合并开发 git merge dev01 -m ‘注释‘
git标签管理
#给当前版本打标签 git tag v1.2 #删除标签 git tag -d v1.2 #给任意版本打标签 git tag -a v1.0 -m ‘优化了1111 修复bug‘ a119962
git远程仓库gitee
码云地址:https://gitee.com/ 一个免费的静态网页托管服务
- 创建私有仓库
- 创建完成:
https协议方式上传
git init git add . git commit -m "first commit" git remote add origin https://gitee.com/weijixiang_god/class.git git push -u origin master #上传到master分支 Username for ‘https://gitee.com‘: weijixiang_god #代码仓库名称 Password for ‘https://[email protected]gitee.com‘: #登录密码
- 上传结果:
ssh协议方式上传
- 主机创建公钥,复制到码云
ssh-keygen #一路回车 cat /root/.ssh/id_rsa.pub #秘钥内容忽略,添加到码云
- 免密钥推送
#创建一个新文件并上传到git仓库 echo "7" > 7.txt && git add . && git commit -m "create 7.txt" git remote remove origin #删除之前上传方式问https的用户信息 git remote add origin [email protected]:weijixiang_god/class.git #添加git方式仓库信息 git push -u origin master
上传标签
git tag 1.0 #给当前仓库打标签 git push origin master --tags #推送标签
原文地址:https://www.cnblogs.com/Mercury-linux/p/12623343.html