Warning : Trying to access array offset on value of type bool in
/www/wwwroot/wql_luoqin_ltd/wp-content/themes/Sakura/inc/theme_plus.php on line
286
一,版本控制系统
为日渐复杂和庞大的开发体系和团队协调,版本控制系统应运而生
版本控制(Revision control):是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技 术
一,版本控制系统的分类
版本控制系统分三类:
本地版本控制
集中版本控制
分布式版本控制
一,本地版本控制
组成部分:一个版本控制库(本地运行版本控制)
本地版本控制工具,只适合个人本地运行,不适合团队协作式开发,只能作为个人开发的版本控制工具,如:RCS
二,集中版本控制
所有的版本数据都保存在服务器中,协同开发者向服务器中上传,同步数据,更新服务器,所有版本信息都保存在服务器上,开发者在本地只能看见提交的版本信息,必须连接中央版本服务器才能同步提交,在本地不能就行操作
弊端:如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有,数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份
三,分布式版本控制
分布式版本控制系统不用必须需要面向中央版本控制器,客户机都有自己的独立性(可以用本地版本库做控制功能),多台客户机之间可以相连,实习文件共享和版本管理
相比较于集中版本控制工具的优点:有本地库可以独立就行版本控制,和远程中央版本库之间通过pull和push就行同步,并不高度依赖中央控制库,
分布式版本控制包含了集中版本控制,但他在此基础又做了结构性的改变
二,Git
Git属于分布式的版本控制工具
一,Git的工作模式
Git分为两大工作模式:
集中版本控制模式
开源社区工作模式
一,集中版本控制模式
git也可以设置中中央版本库(远程库),本地只可以只适用于单人开发,设置远程库可以团队协同开发,
二,开源社区工作模式
开源社区模式主要针对的是协同开发的权限问题
二,Git的初始化
git要使用必须在项目跟目录进行本地的初始化,这是git操作的前提
初始化命令:git init
初始化后会形成 .git 的隐藏文件
文件概要:
hooks:存放一些shell(Linux)和cmd(windons)脚本文件
info:存放仓库信息
logs:保存所有更新的引用记录
object:保存object对象
refs:head:保存当前第一次提交的hash值,remotes:保存远程库的信息如:别名
COMMIT_EDITMSG:最新提交的一次 Commit Message , git 系统不会用到,给用户一个参考
config:仓库的配置文件
index:暂存区,一个二进制文件
HEAD:映射到 ref 引用,能够找到下一次 commit 的前一次哈希值
FETCH_HEAD : 是一个版本链接,指向着目前已经从远程仓库取下来的分支的末端版本
ORIG_HEAD:HEAD指针的前一个状态
三,Git的总体流程图
Git分三大部分:
工作区:其实就是本地的项目文件
暂存区:工作区和本地库中间地带,
本地库:保存提交文件
三,Git的命令操作
一,设置签名
git签名都使用同一个命令只是属性不同
git的签名分三种:
系统用户签名
全局签名
本地库签名
签名的内容只有两个:可以自定义,只是一个git标识
user.name:用户名
user.email:邮箱
1,系统用户签名:git config --global
git config --global user.name '用户名'
git config --global user.email '用户邮箱'
在用户系统目录下生成gitconfig配置文件
2,全局签名:git config --system
git config --system user.name '用户名'
git config --system user.email '用户邮箱'
在git安装目录下的etc下的gitconfig添加签名
3,本地库签名:git config (不需要任何参数)
在当前项目的.git项目中的config文件中加入签名
签名的作用域:小的范围覆盖大的范围 (系统 >全局 >本地)
签名的查看
方式一:git config --global user.name (查看系统签名)
git config --system user.name (查看全局签名)
git config user.name (查看本地库签名)
方式二:git config --list (查看所有本地库变量列表)
git config --system --list (查看所有全局变量)
git config --global --list (查看所有用户级别变量)
签名的修改:直接重新赋值,把原值覆盖就行
签名的删除:git config --unset 变量名
之间修改签名的配置文件:git config --edit
二,工作区和暂存区的文件操作
一,status查看文件状态
git status :查看工作区文件状态,当标红说名文件没有提交到暂存区,但为绿色说明已经提交进暂存区,假如没有文件说明两种情况:1,工作区没有文件 2,文件全部提交
二,文件的删除和修改
git文件删除分四种情况:
只删除工作区中的文件:rm -f filename
只删除暂存区中的内容:git rm -cached filename
删除工作区同时也删除暂存区中的内容:git rm filename
删除本地库中的内容:直接将暂存区中的内容提交就可以(暂存区中有delete记录,提交后本地库会相应自动删除)
git文件的重命名和移动:git mv 文件名 重命名/路径
三,文件的比较
文件的比较分三类:
工作区和暂存区比较:git diff 文件名
暂存区和本地库比较:git diff --cached 文件名
历史版本的比较: git diff HEAD HEAD^ 文件名(不加文件名就是版本的大比较包含所有文件的比较)
四,撤销和版本的回退
工作区中的撤销:就是把之前提交到暂存区中的文件,覆盖工作区文件实现撤销,git checkout filename
版本回退有三个主要参数实现三种回退方式:
git reset --soft:只回退本地库信息,暂存区,工作区没有回退和改变
git reset --mixed:回退本地库和暂存区版本,工作区没有变化 ,reset的默认方式
git reset --hard:本地库,暂存区,工作区都没有变化
回退可以接的值:
HEAD指针:HEAD^,一个^代表上一次,多个则代表上次多个版本
版本编号:每一个版本都一个唯一的编号,接编号直接跳转版本
五,查看历史版本
git每一次commit都会产生一个版本,历史版本会被存放到日志文件中,可以直通过命令查看
查看历史版本有两个命令:
git log : 查看HEAD指针,指向的单前版本和以前版本
git reflog:查看所有的历史版本
git log的参数:
--oneline:一行化输出
--p:控制输出每个commit具体修改的内容,输出的形式以diff的形式给出 git show也就和它类似
--author:限定给定用户日志
--pretty:自定义输出的信息
1,版本信息的组成部分
版本信息由三部分组成:
commit编号
当前操作用户的签名
日期
操作
六,分支
分支的概念:从主线分离的出来进行另外的操作,但不会影响主线的
分支的作用:完成特定任务从主线分离分支,完成任务后合并回主线产生一个新版本
注:分支是为了完成某一功能的而又不影响主程序而产生的临时品,合并后不会随主分支的版本的更新而同步,要被删除
分支是git的一大特点是一些集中版本控制工具所不具备的,如:SVN
1,创建分支
命令:git branch 分支名称
2,删除分支
命令:git branch -d 分支名称
3,查看分支
命令:git branch -v
4,切换分支
命令:git checkout 分支名
git checkout -b 创建分支再切换
5,分支合并
命令:git merge 合并的分支名称
三,远程库GitHub
1,在GitHub上创建远程库:
2,查看远程仓库url:
3,添加远程仓库设置别名
命令:git remote add 别名 远程仓库地址
查看远程仓库:git remote -v
4,克隆远程仓库
命令:git clone 远程仓库别名
克隆就是先在本地init,任何条件远程仓库地址 git remote add ,然后git fetch 远程仓库名 拉取数据
5,拉取远程库
命令1:git fetch 远程库:仅仅是拉取远程库,不会同步master和文件
命令2:git pull 远程库 在git fetch的基础上自动应用远程修改,不过要谨慎使用,当心远程的修改和本地有冲突
6,上传文件
命令:git push 远程库 分支名
Comments | NOTHING
Warning: Undefined variable $return_smiles in /www/wwwroot/wql_luoqin_ltd/wp-content/themes/Sakura/functions.php on line 1109