分布式管理系统发展历程
版本控制系统(VCS)
是一种记录一个或若干文件内容变化的控制系统。有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方, 从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。
版本控制系统
按历史迭代分为三种:本地版本控制系统、集中式版本控制系统、分布式版本控制系统。
本地版本控制系统
:只有本地仓库安装在自己的本地计算机上,可以追溯旧版本,无法进行协同作业。
集中式版本控制系统
:只有远程仓库,支持多台计算机中心服务器仓库协调作业,可追溯旧版本。缺点中心服务器故障,无法进行协同作业,严重磁盘坏掉,丢失所有版本。
分布式版本控制系统:
不仅有本地仓库进行管理,还可以提交到远程仓库进行协同作业。而且完美解决了集中式版本控制系统的问题。最知名的分布式控制系统是git
git学习
简介
• git属于开源社区软件,采用快照的方式对每个版本的文件进行记录。
• 所有的操作基本都是在本地仓库完成的,没有网络延迟。
• 采用哈希SHA1算法校验文件的完整性。
• git 设计简单
• 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
• 完全分布式
• 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
git 本地版本库相关文件
git 本地仓库操作指令
git本地仓库工作区域图
git init
git rm 文件或者目录
含义:删除暂存区以及工作区的文件或目录
git rm --cache 文件或者目录
含义:删除暂存区的文件及目录
git add 文件或者目录
含义:将工作区文件未放暂存区的,放入暂存区
git commit -m “字符串
含义:将暂存区未提交到本地仓库的文件提交到本地仓库 ,-a
从工作区直接提交到版本库,省略git add
,--amend
将暂存区提交到版本库,但不生成新的版本,沿用上次版本。
git log
含义:查看提交本地仓库记录(带有版本号)-n
打印n行版本库记录-p
打印提交的差异--stat
选项在每次提交的下面列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了--graph
显示分支图
git reflog
含义:查看版本回退的记录(带有回退git log查看不到的版本号)
git checkout -- 文件名
含义:对工作区标记的文件进行撤回上个检测操作
git reset HEAD
含义: 将暂存区的文件放回工作标记区
git reset --hard 版本号
含义:将本地仓库的版本回退到指定版本号的仓库,工作区和暂存区也回退
git reset --mix 版本号
含义:将本地仓库的版本回退到指定版本号的仓库,但是工作区不回退
git reset --soft 版本号
将本地仓库的版本回退到指定版本号的仓库,但是工作区和暂存区均不回退,只回退版本库
git status
含义:查看当前文件的存储和管控状态
git diff
含义查看暂存区和工作区文件的差异 ,加--cache或者--staged
查看暂存区和版本库的文件差异,git diff 版本1 版本2
查看两个版本的差异
git config
含义:设置以及查看配置,--list
查看配置清单,--global、--local
设置user.name、user.email
等
git mv
含义:在工作区的移动文件,并放入暂存区
git 远程仓库操作指令
.
git remote add 别名 远程仓库网址
, 将本地仓库和远程仓库关联,并给远程仓库在本地取一个别名
git push 别名/远程仓库网址 本地分支名
,将本地分支代码推送到远程仓库
git pull 别名/远程仓库网址 远程分支名
,将远程仓库代码拉取到本地仓库分支,默认保证本地仓库代码没有变化,如果有改变,拉取失败,使用git fetch
和git merge
组合
git clone 远程仓库网址
,将远程仓库克隆到本地
git fetch 别名/远程仓库网址 远程分支名
,将远程仓库修改拉取到本地仓库临时分支,使用git merge
合并到本地仓库
git merge
在本地合并两分支冲突