版本控制系统
记录n个文件的历史变化的的一个系统,用于未来时的特定版本的查阅和恢复。
版本控制系统的优点:
- 本地版本控制系统
你可以理解为本地的wps云 - 集中化的版本控制系统(SVN)
- 分布式版本控制系统(git)
特定名词的含义
repository 代码仓库,存放着我们修改的历史信息
version 版本
tag 这个也是版本,但一般是相当于一次大的版本提升
checkout 切换或者取出某个版本
各种版本控制系统的特点概述
- 本地
优点:无需联网,操作简单
缺点:无法多人协作,只适合于文本类的单人单点开发,不适合项目 - 集中化
优点:可以支持多人以及面向项目的版本管理
缺点:必须联网,如果不联网无法进行更新操作,同时存在单点故障的数据安全问题 - 分布式
优点:由于出现的年代最晚所以基本解决了以上的版本管理的缺点
缺点;会发成冲突的情况(需要解决冲突才能push)
git为什么这么快,git用了什么技术
这么说吧,版本控制其实即使面对很大的项目例如linux内核都可以进行很快的push和pull,这是为什么,换个方式说吧,就是为什么git的速度能达到很快。
其实也简单这不得不让人佩服git的发明人,他没有采用存储修改的方法而是直接存储一个文件(项目)代码的快照,这样自然速度提高了很多。当然还有很多更加复杂的技术,但是我也只是浅谈一下git而已,有兴趣的朋友可以自己钻研更深的git技术。
git工作区域
- working dict 工作目录,就是供我们修改的地方
- staging area 暂存区域,由工作目录存储到暂存区域
- git repository 仓库,由暂存区域才能存储到仓库
git配置
- 设置
用户名
git config --global user.name"你的用户名"
邮箱
git config --global user.email"邮箱"
查看设置
git config --list
获取帮助
git help
- git操作
windows上的操作
安装好git后鼠标右键点击进入git bash然后进入你想设置为master的目录(这里要使用Linux命令)
输入git init 回车
出入ll -a查看,若出现一个.git文件说明初始化成功。.git也就是git仓库时左右的数据的保存地点。
输入git status 发现有untracked file标识,说明存在文件没有加入git管理,当然如果没有文件的话可以先创建一个,例如我输入touch file.txt文件,那么现在file文件就是untracked file标识,然后输入git add file.txt 就可以将文件加入git暂存区域。在输入git status 就可以看到变化。
这个时候会出现file.txt文件待提交的提示,也就是由 untracked file变为change to commit,接下来我们执行提交命令将暂存区域的文件提交到repository:git commit -m “submit file.txt” 点击回车,再用git status查看,就会发现已经提交了file文件到git了。
- 其他操作
git log查看提交日志
- 修改后进行提交的git操作
还是用我上面使用的file.txt文件做例子,我们对file进行一些文本上的修改,然后git status查看一下很明显看到了变化,这个鼓励大家自己动手去试一下,然后有两种做法
- 像2中的操作一样先add再及及进行commit
- 这里我再说一种直接提交的方法,直接输入 git commit -a -a “在这里输入注释 比如修改file+日期”
完成后status 进行查看一下。
- 删除
git rm 文件名
然后再提交一下 git commit -m “XXX”
- 恢复到某个版本
首先我们查看日志git log
然后我们发现再log中每次commit:后面跟着一大串编码。我们只需要复制下来,然后输入chechout 复制下来的编码 (点击回车就回到了原来的版本
希望大家喜欢,又不对的请指出。对web、大数据、数据科学有兴趣的同学希望一起多多探讨呀。