Git 01 介绍
参考源
https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.999.0.0
版本
本文章基于 Git 2.35.1.2
版本控制
版本控制(Revision Control)是在开发过程中用于管理文件修改历史,方便查看和备份。
它的作用如下:
- 实现跨区域多人协同开发。
- 追踪和记载一个或者多个文件的历史记录。
- 组织和保护你的源代码和文档。
- 统计工作量。
- 并行开发、提高开发效率。
- 跟踪记录整个软件的开发过程。
- 减轻开发人员的负担,节省时间,同时降低人为错误。
简单说就是用于管理多人协同开发项目的技术。
常见的产品
主流的版本控制器如下:
- Git
- SVN(Subversion)
- CVS(Concurrent Versions System)
- VSS(Micorosoft Visual SourceSafe)
- TFS(Team Foundation Server)
- RCS(GNU Revision Control System)
除了这些主流的产品,还有一些其他的产品:
- Visual Studio Online
- Perforce
- Rational ClearCase
- Serena Dimention
- SVK
- BitKeeper
- Monotone
- Bazaar
- Mercurial
- SourceGear Vault
现在影响力最大且使用最广泛的是 Git 与 SVN。
SVN 由于其局限性,近年来的地位已经慢慢被 Git 所取代,现在 Git 是世界上最先进的分布式版本控制系统。
分类
本地版本控制
记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用。
代表产品:RCS。

集中版本控制
所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。
所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本。
如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。
而且,所有数据都保存在单一的服务器上,如果这个服务器损坏,就会丢失所有的数据,需要定期备份。
代表产品:SVN、CVS、VSS。

分布式版本控制
所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史。
在没有网络的情况下,可以离线在本地提交,只需在连网时推送到相应的服务器或其他用户那里。
由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据。
不会因为服务器损坏或者网络问题,造成不能工作的情况,极大的降低了风险。
代表产品:Git。

Git 与 SVN 区别
SVN 是集中式版本控制系统,版本库是放在中央服务器的。
工作的时候,首先要从中央服务器得到最新的版本,完成工作后,需要把自己做完的活推送到中央服务器。
集中式版本控制系统是必须联网才能工作,且对网络带宽要求较高。
Git 是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库。
工作的时候不需要联网,因为版本都在自己电脑上。
待有网络后,把本地的版本推送到远程即可。
历史
同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。
一切始于 Linux 的维护,众所周知,Linux 内核开源项目有着为数众多的参与者。
1991-2002 年间,绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上。
由于提交的内容繁多,这些工作是非常痛苦的。
到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。
在这期间,Linux 社区中很多的大佬破解研究 BitKeeper。
到 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用的权力。
这就迫使 Linux 开源社区开发出自己的版本系统。
Linux 的缔造者 Linus Torvalds 花了两周左右的时间,开发出了 Git。
Git 01 介绍的更多相关文章
- SourceTree 01 - git 客户端介绍
SourceTree - git客户端介绍 SourceTree系列第1篇 --->> SourceTree 01 - git 客户端介绍(http://www.cnblogs.com/g ...
- Android Testing学习01 介绍 测试测什么 测试的类型
Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...
- git使用介绍
Git简单介绍 参考网址: git使用简介 这个教程推荐使用:git教程 git和svn的差异 git和svn的最大差异在于git是分布式的管理方式而svn是集中式的管理方式.如果不习惯用代码管理工具 ...
- 1、git基础介绍及远程/本地仓库、分支
1. Git基础介绍 基于Git进行开发时,首先需要将远程仓库代码clone到本地,即为本地仓库.后续大部分时间都是基于本地仓库上的分支进行编码,最后将本地仓库的代码合入远程仓库. 1.1. 远程仓库 ...
- git基础介绍
git基础介绍 这是git操作的基础篇,是以前的写的操作文档,就没有进行手打,直接把图片贴进来了,你们担待哈,有不正确的地方可以指正出来,我将在第一时间去修改,多谢哈! 一.文件状态:git系统的文件 ...
- GitHub的SSH key配置以及常用的git命令介绍
一. GitHub的SSH key配置 (以windows为例,Mac iOS系统类似) SSH Key 是一种方法来确定受信任的计算机,从而实现免密码登录.Git是分布式的代码管理工具,远程的代码管 ...
- Redis学习01——介绍与搭建环境
Redis学习01介绍与搭建环境一简介二yum配置已经配置了的可以跳过三安装gcc四安装redis1 上传Redis到linux中2 解压到usrlocal下3 编译redis4 安装redis5 拷 ...
- 版本控制工具(SVN/Git)介绍
文章大纲 一.SVN介绍二.Git介绍三.IDEA使用SVN和Git四.总结五.参考文章 一.SVN介绍 1. SVN服务器搭建和使用 首先来下载和搭建SVN服务器,下载地址如下: http:// ...
- GIT命令介绍
Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下. 区别与集中式的分布式实现!!!! 集中 ...
随机推荐
- Java 线程创建与常用方法
进程与线程 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存.在指令运行过程中还需要用到磁盘.网络等设备.进程就是用来加载指令.管理内存.管理 IO ...
- Java添加条形码到PDF表格
条码的应用已深入生活和工作的方方面面.在处理条码时,常需要和各种文档格式相结合.当需要在文档中插入.编辑或者删除条码时,可借助于一些专业的类库工具来实现.本文,以操作PDF文件为例,介绍如何在编辑表格 ...
- 无法打开虚拟机“master”(D:\文档\Virtual Machines\master\master.vmx):未找到文件。是否从库中移除“master”?
今天打开虚拟机的时候,出现了这样的弹窗提示: 无法打开虚拟机"master"(D:\文档\Virtual Machines\master\master.vmx):未找到文件.是否从 ...
- sublime_text 3安装Emmet时出现PyV8警告
使用Emmet是需要在PyV8依赖下才可以的.1. 下面是下载网址:PyV8下载地址 下载自己系统版本的压缩包,然后解压,自己创建一个名为PyV8文件夹.将解压后的文件放入该文件夹里. 打开首选项里的 ...
- 你难道不知道Vue-cookie?
install npm install vue-cookies --save main.js import VueCookies from 'vue-cookies'Vue.use(VueCookie ...
- 关于Vue移动端框架(Muse-UI)的使用(说明书,针对不愿看文档的童鞋)
一.安装 1.npm安装 npm i muse-ui -S 或者 CDN安装 <link rel="stylesheet" href="https://unpkg. ...
- Spring Data JPA系列3:JPA项目中核心场景与进阶用法介绍
大家好,又见面了. 到这里呢,已经是本SpringData JPA系列文档的第三篇了,先来回顾下前面两篇: 在第1篇<Spring Data JPA系列1:JDBC.ORM.JPA.Spring ...
- Banner自定义图案
Banner大全https://www.bootschool.net/ascii
- 把excel的数据导入到SQLSERVER里面,excel的字符串时间在导入sql库显示datetime 数据类型的转换产生一个超出范围的值
这是我Excel导入的数据,准备把这个varchar(50)时间导入我的userInfo表中的出生日期字段datatime,如果你的数据正常,是可以导入的, 但是有些日期可能超出datatime的最大 ...
- 贝壳自动化测试平台sosotest 学习记录
手工测试VS自动化测试 用例执行: 手动执行 自动执行 是否需要些脚本: 需要 不需要 测试报告生成: 手动 自动 常见的测试技术 关键字驱动的测试框架 RobotFRamework 单元测试框架 自 ...