版本控制系统,也就是VCS(Version Control System),可以说是程序员必备的工具。那么它到底是什么,有什么作用呢?

举个例子,如果你想查看你所开发的软件在一个月之前的模样,同时还想比较之前的代码与现在的代码的差异,又或者你想把代码回退到之前的某个时间点的版本,你会怎么做呢?

如果你不了解VCS的话,也许你已经懵了,好像根本没有办法办到!这个时候你就需要学习一下VCS了,它可以帮你解决上面提到的那些问题,以及其他许多的高能操作,让你能够轻松管理你的代码。

VCS是一类软件的统称,其大致可以分为三种:

  • 本地式:采用某种简单的数据库来记录文件的历次更新差异。
  • 集中式:如SVN,由一个单一的服务器集中管理保存所有文件的版本。
  • 分布式:如Git,每个客户端持有代码仓库的完整镜像。

今天我们的主角就是Git,它是当今最流行的开源分布式版本控制系统,可快速高效地管理任意规模的项目。

关于Git的诞生还有一段不得不提的故事:Git的作者就是林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds),想必大家都知道,他就是大名鼎鼎的Linux内核的作者。当初Linux内核开源社区使用的是某商业公司免费提供的版本控制系统,后来合作关系解除了,林纳斯则自己花了不到两周的时间开发出了Git这一伟大的软件。

Git在保存和对待各种信息的时候与SVN有很大差异:

  • SVN将它保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。

  • Git更像是把数据看作是对小型文件系统的一组快照。每次你提交更新或在Git中保存项目状态时,它对当时的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git不再重新存储该文件,而是只保留指向之前存储的文件的引用

在Git中,你的文件总是处于以下三种状态之一:

  • 已提交:数据已经安全保存在本地数据库中。

  • 已修改:修改了文件,但还没保存到数据库中。

  • 已暂存:对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

Git项目的三个工作区域:

  • Git仓库:Git用来保存项目数据的地方。克隆仓库时,拷贝的就是这里的数据。

  • 工作目录:简单来说就是你写代码的地方,是Git对项目的某个版本独立提取出来的内容。

  • 暂存区域:是一个保存了下次将提交的文件列表信息的文件,一般在Git仓库目录中。

基于Git的工作流程:

  1. 在工作目录中修改文件。

  2. 暂存文件,将文件的快照放入暂存区域。

  3. 提交更新,找到暂存区域的文件,将快照永久性存储到Git仓库目录。

理解三种状态、三个区域以及工作流程对使用和理解Git有很大的帮助,请务必认真理解。

Git可以在Git官网(https://git-scm.com)选择对应的操作系统进行下载,之后的安装一直选择下一步直至完成,全部按默认配置即可。
由于Git常用命令较多,就不便堆放在这同一篇文章了,后续会推出专门讲Git常用命令的文章或者视频,请大家敬请期待。

世界上最流行的版本控制系统——Git的更多相关文章

  1. 分布式版本控制系统git

    最近看到这篇文章,简洁易懂,特摘抄至https://www.cnblogs.com/bgwhite/p/9403233.html 供大家提供参考. git可以说是世界上最先进的版本控制系统,大多语句的 ...

  2. [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git

    [.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...

  3. [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit

    [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitS ...

  4. [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境

    [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...

  5. 菜鸟学IT-分布式版本控制系统Git的安装与使用

    分布式版本控制系统Git的安装与使用 本次作业要求来于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 一.首先在window ...

  6. 分布式版本控制系统 Git 的安装与使用

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/CJL29 ...

  7. 【软件工程】分布式版本控制系统Git的安装与使用

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/Richa ...

  8. 分布式版本控制系统Git的安装与使用(作业2)

    (本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103) 分布式版本控制系统Git的安装与使用 一.安装Git b ...

  9. 分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境(服务器端及客户端)(转)

    近期想改公司内部的源码管控从TFS为git,发现yubinfeng大侠有关git的超详细大作,现将其转载并记录下,以防忘记,其原博客中有更加详细的git及.net开发相关内容.原文地址:http:// ...

随机推荐

  1. 2019-10-10-优雅调试-REST-API-的工具

    title author date CreateTime categories 优雅调试 REST API 的工具 lindexi 2019-10-10 20:9:33 +0800 2019-10-1 ...

  2. 12174 - Shuffle——[滑动窗口]

    You are listening to your music collection using the shuffle function to keep the music surprising. ...

  3. H3C网络监测工具命令

    1.Debugging 2.Display debugging 3.Display diagnostic-information display diagnostic-information 命令用来 ...

  4. codeforces 161D 点分治

    传送门:https://codeforces.com/problemset/problem/161/D 题意: 求树上点对距离恰好为k的点对个数 题解: 与poj1741相似 把点分治的模板改一下即可 ...

  5. 安装低版本Microsoft .NET Framework 4.5受阻解决方案

    在VS目标框中找不到Microsoft .NET Framework 4.5,项目出错,安装受阻.... 1.Microsoft .NET Framework 安装了高版本后,低版本通过网上上下载的d ...

  6. 模型正则化,dropout

    正则化 在模型中加入正则项,防止训练过拟合,使测试集效果提升 Dropout 每次在网络中正向传播时,在每一层随机将一些神经元置零(相当于激活函数置零),一般在全连接层使用,在卷积层一般随机将整个通道 ...

  7. MySQL的读写分离与主从同步数据一致性

    有没有做MySQL读写分离?如何实现mysql的读写分离?MySQL主从复制原理的是啥?如何解决mysql主从同步的延时问题? 高并发这个阶段,那肯定是需要做读写分离的,啥意思?因为实际上大部分的互联 ...

  8. DEVOPS技术实践_12:创建持续集成的管道

    持续集成不仅包含了Jenkins或者相关其它的CI工具,也包含了包含代码如何控制,采用的什么分支策略等.不同的组织可能采用不同的类型的策略来完成CI,策略类型和项目的类型的有很大的关系. 一 分支策略 ...

  9. Python学习3月10号【python编程 从入门到实践】---》笔记

    第11章 测试代码 11.1.2 可通过的测试 name_function.py ###创建一个简单的函数,他接受名和性并返回整洁的姓名 def get_formatted_name(first,la ...

  10. 洛谷$P$2468 粟粟的书架 $[SDOI2010]$ 主席树

    正解:主席树 解题报告: 传送门! 题目大意是说,给定一个矩形,然后每次会给一个,这个大矩形中的一个小矩形,询问从小矩形中最少选多少个数字能满足它们之和大于等于给定数字$x$ 看起来很神的样子,完全不 ...