GIT

是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git的功能特性:
从一般开发者的角度来看,git有以下功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
VCS
版本控制系统(version control system),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。用的比较多的如svn,git等。
为了让不同系统上的开发者能够协同工作,集中化的版本控制系统应运而生(CVCS)。这类系统都有一个单一的集中管理的服务器,保存所有文件的修订版本。而协同工作的人们都通过客户端连接到这台服务器,获取最新的文件或者提交更新。集中化的版本控制系统,最显而易见的缺点是中央服务器的单点故障问题。如果宕机,那么就会出现谁都无法提交更新的情况,那么也就无法协同工作;如果磁盘发生故障,而备份又不够即时,那么就有丢失数据的风险,最坏的情况是丢失整个项目的历史更改记录。因此,分布式版本控制系统问世了(DVCS)。
分布式版本控制系统中,客户端不仅仅是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。所以每一次提取的操作,都是对代码仓库的完整备份,因此也就不必担心协同工作用的服务器发生故障。
Git和其他版本控制系统的主要差别在于:Git只关心文件数据的整体是否发生了变化,而多数的其他系统则只关心文件内容的具体差异,它们在每个版本中记录着各个文件的具体差异。在Git中的绝大多数操作都只需要访问本地文件和资源,不需要联网。这是因为Git在本地磁盘上就保留着所有当前项目的历史更新,所以处理起来速度飞快,这是使用空间换时间的处理方式。使用Git,即使在没有网络或VPN的情况下,你同样可以非常愉快的频繁提交更新,等到有了网络的时候再提交到远程的仓库。

最新文章

  1. Unity在Android和iOS中如何调用Native API
  2. OpenLDAP安装
  3. mysql5.8安装指南
  4. redis常用操作总结
  5. 图灵机器人(问答机器人)API调用示例
  6. Parallel的陷阱
  7. C++中的运算符重载
  8. for循环的嵌套——7月24日
  9. ios开发——面试篇(一)
  10. 高德地图 JavaScript API 开发系列教程(一)
  11. 【技术宅3】截取文件和url扩展名的N种方法
  12. 2014 BDTC 参会有感
  13. Android Studio旧版(内含SDK)安装和环境变量配置 转自I-T枭
  14. Windows下安装MySql5.7(解压版本)
  15. java 中Math 的常用方法
  16. Oracle.ManagedDataAccess 提示ORA-01017 错误【解决方案】
  17. 【详细】【转】C#中理解委托和事件
  18. [Demo_01] MapReduce 实现密码 Top10 统计
  19. DWZ主从表界面唯一性验证(自写js)(一)
  20. 《Linux内核设计与实现》第3章读书笔记

热门文章

  1. js下载图片
  2. P2048 [NOI2010]超级钢琴 (RMQ,堆)
  3. thinkphp if标签
  4. hpu积分赛(回溯法)
  5. zzuli 1430 多少个0
  6. uart boot log
  7. POJ 1947 Rebuilding Roads 树形dp 难度:2
  8. 《Python》 列表、元祖和range
  9. MyEclipse移动开发教程:设置所需配置的iOS应用(三)
  10. SharePoint Infopath表单服务-PowerShell