Git版本控制系统VCS
Git版本控制系统VCS
一、版本控制系统基本情况说明
版本控制是一种记录一个或者若干个文件内容的变化,以便将来查阅特定版本修订情况的系统
1、作用
记录文件的所有历史变化
随时可回复到任何一个历史状态
多人协作开发或者修改
错误恢复
多功能的并行开发(分支功能、特性-合并操作)
2、分类
本地版本控制系统(local VCS)
集中化的控制系统(Centralizes VCS)
分布式的版本控制系统(Distributed VCS)
3、基本概念
repository——存放所有文件及历史信息
checkout ——取出或者切换到指定版本的文件
version ——记录表示一个版本(编号或者其他代码),某个特定状态下的资源
tag ——记录标识一个主要版本(1.0 2.0 3.0)
4.三种版本控制系统细讲
(1)本地版本控制系统(LVCS)——本地完整仓库(少用)
RCS (Revision Control System)
优点:简单、很多系统中都有配置
适合管理文本文件
缺点:不支持网络
支持类型单一
只适合管理少量文件、不支持基于项目的管理
(2)集中式版本控制系统(CVCS )——服务器完整的仓库
CVS (Concurrent Version System)
Subversion
优点:适合多人团队协作开发
代码集中话管理
缺点:单点故障
必须连网操作,无法单击本地工作
(3)分布式版本控制系统(CVCS)——本地和服务器都有完整的仓库
Git
Mercurial
优点:适合多人团队协作开发
代码集中化管理
可以离线工作
每个计算机都是一个完整仓库
二、Git——一个分布式的版本控制系统
1、Git由来
Git最初开发是为了取代BitKeeper,由linus
Torvalds开发,作为linux内核代码管理系统使用。
Git
设计时考虑了很多方面,除了分布式版本控制系统的优点外,还考虑了一下的设计目标,这些目标都成为git的优点:
速度、简单的设计、对非线性开发模式的强烈支持(分支功能,允许上千个并行开发的分支)、完全分布式、有能力管理类似linux内核一样的强大规模项目。
2、为什么取名git
I'm
an egotistical bastard,and I name all my projects after
myself.First'Linux',now'Git'. ——Linus Torvalds
3、git原理——快照,而非保存区别。
(1)快照,而非保存
每一种版本控制系统都用一种办法追踪不同阶段的文件的变化。
别的:补丁(保存区别)
Git
:快照(链接)snapshot
(2)几乎所有的操作都是在本地执行
(3)通过校验和算法识别文件的变化
Git
使用SHA-1算法对文件内容或者目录结构进行hash运算,用得出的校验值作为识别变化的指纹。
(4)多数操作据为添加数据
4、Git
原理——文件状态及工作区域
Git
respository——最终确定的文件保存到仓库,成为一个新的版本,并且对他人可见
Staging
area(index)——暂存已经修改的文件
Working
Directory——编辑、修改文件
三、Git安装
sudo
apt-get updates
sudo
apt-get install git
四、Git基础设置
1、设置用户名
git
config –-global user.name “IterCast”
2、设置用户邮箱
git
config –global user.email “demo@itercast.com”
(用户名和邮箱是提交代码时的标识)
3、查看设置
git
config –list
4、可以通过以下命令获取git帮助
git
help
可以通过以下的命令获取特定指令的帮助
git
help 特定指令
五、Git操作
(一)初始化一个新的Git仓库
1、创建一个文件夹(或者使用已有的文件夹)
mkdir
git-Demo
2、在文件夹内初始化Git
,创建Git仓库
cd
git-Demo
git
init (实际上就是在这个文件夹下面创建一个隐藏的文件夹.git,所有的git文件都保存在此)
(二)Git
仓库中的文件添加及更新
Git
工作区域: Working
Directory——>Staging area(index)------>Git repository
(1)新添加的文件
hellogit.rb、README
(2)添加到Staging
area
git
add hellogit.rb
git
add README
(3)确定后,添加到Git
repository
git
commit -m “init pro说明信息”
注释:
(1)git
status 查看当前的仓库状态;git
log查看仓库日志。
(2)git
commit -a -m “modify hellogit” 直接一起提交暂存文件。(不会自动提交未追踪的文件)
git
commit -a -m “modify README”
(git
status)
(三)删除文件
1、删除文件(从系统中删除文件)
rm
README
2、从Git中删除文件(让Git不去追踪这个文件)
git
rm README
3、提交操作
git
commit -m “delete README”
注:只是在当前版本中删除,而历史版本中还是存在的
(四)重命名文件
hellogit.rb---------->helloworld.rb
1、git
mv hellogit.rb helloworld.rb
2、git
commit -m “rename hello.rb to helloworld.rb”
注:重命名文件相当于执行下面三条命令
1、mv
hellogit.rb helloworld.rb
2、git
rm hellogit.rb
3、git
add helloworld.rb
六、Git
远程仓库简介
Working
Directory---->Staging area------->Git
repository-----.git仓库文件---->Git仓库文件
1、Git远程仓库——访问协议
Local、SSH
、Git
、HTTP/HTTPS
2、常用Git
仓库实现
(1)使用现有的Git网络仓库服务
github、bitbucket
(2)搭建自己的Git仓库服务器件
声明:本文是在观看苏勇老师在51CTO学院上面的Web开发-苏勇老师Git 版本控制系统精讲视频课程整理而来,大家可以进行视频观看。在此谢过苏勇老师!!
Git版本控制系统VCS的更多相关文章
- Google Code项目代码托管网站上Git版本控制系统使用简明教程
作为一个著名的在线项目代码托管网站,Google Code目前主要支持三种版本控制系统,分别为Git, Mercurial和 Subversion.Subversion即SVN相信大家都已经熟知了,这 ...
- git版本控制系统重新认识
git 版本控制系统 目标:完全搞懂git分布式版本控制系统 搭建git版本控制系统 cvs集中化版本控制系统--集中式管理的服务器 git分布式版本控制系统--会将原始代码仓库镜像下来 新项目使用g ...
- git版本控制系统小白教程(上)
前言:本文主要介绍git版本控制系统的一些基础使用,适合小白入门,因为内容较多,会分为两部分进行分享. Git介绍 Git是目前世界上最先进的分布式版本控制系统.并且它是一个开源的分布式版本控制系 ...
- git版本控制系统小白教程(下)
前言:本文主要介绍git版本控制系统的一些基础使用,适合小白入门,因为内容较多,会分为两部分进行分享,查看上部请点传送门. 删除文件 git删除文件一般有三种情况,第一种是在工作区修改了文件,但是 ...
- 版本控制系统(VCS)简介
简介 版本控制系统(VCS)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先 ...
- 初识git版本控制系统
当下git分布式版本控制系统越来越火,掌握git也是必须的一个技能.因此,对git做了如下学习. Git初级指南 1. 先安装git.(ps:在select cmponents处要勾选Git Bash ...
- 如何选择版本控制系统 ---为什么选择Git版本控制系统
版本控制系统 "代码"作为软件研发的核心产物,在整个开发周期都在递增,不断合入新需求以及解决bug的新patch,这就需要有一款系统,能够存储.追踪文件的修改历史,记录多个版本的开 ...
- Git版本控制系统之基本使用
最早是通过接触著名的开源社区Github了解到Git的,但一直没有系统学习过.这次下定决心从头到尾系统的学一学,也将学习过程记录于此,供大家批驳.本篇文章先从以下几个方面简单了解一下Git: Git的 ...
- git版本控制系统更新
版本控制系统: 一.概念: 版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 二.版本控制系统分类 1.本地版本控制 ...
随机推荐
- Android WebView 常见问题
1.为WebView自定义错误显示界面: /** * 显示自定义错误提示页面,用一个View覆盖在WebView */ protected void showErrorPage() { LinearL ...
- 大数据(5) - HDFS中的常用API操作
一.安装java 二.IntelliJ IDEA(2018)安装和破解与初期配置 参考链接 1.进入官网下载IntelliJ IDEA https://www.jetbrains.com/idea/d ...
- 一步一步解析H.264码流的NALU(SPS,PSS,IDR)获取宽高和帧率
分析H.264码流的工具 CodecVisa,StreamEye以及VM Analyzer NALU是由NALU头和RBSP数据组成,而RBSP可能是SPS,PPS,Slice或SEI 而且SPS位于 ...
- 我的第7个java程序--把java web项目改为java project项目--mybatis
连接数据库需要 程序,连接字符串,查询语句 主程序->读取连接字符串->读取查询语句->把查询到的值赋值给映射对象->打印对象属性 java project的好处,不用做那么多 ...
- Spring MVC多项单选按钮
以下示例显示如何在使用Spring Web MVC框架的表单中使用多选按钮(RadioButton).首先使用Eclipse IDE来创建一个WEB工程,实现一个让用户可选择自己喜欢的数字的功能.并按 ...
- Wireshark使用注意事项
一直在使用老板的Wireshark,因为4G网络的逐步开通,越来越须要新版Wireshark来解析一些数据包. 在更换了新Wireshark的1.11.3后发现原来能够解析Gb口数据的NSIP不见了 ...
- 微信 oauth4
4.最后 4. 使用access_token获取用户信息 请求方法: https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN& ...
- java 证书 .cer 和 .pfx
作为文件形式存在的证书一般有这几种格式: 1.带有私钥的证书 由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形 ...
- Win API:之GetCurrentThread、GetCurrentThreadId、GetCurrentProcess、GetCurrentProcessId
Win API:之GetCurrentThread.GetCurrentThreadId.GetCurrentProcess.GetCurrentProcessId {返回当前线程的虚拟句柄} Get ...
- day11函数的进阶动态参数,命名空间,作用域,第一类对象
一.习题收藏 5.写函数,计算传入字符串中[数字].[字母].[空格] 以及 [其他]的个数,并返回结果. # def func4(s): # dic = { # 'num':0,'alpha':0, ...