所谓版本控制,就是对发行的版本进行管理,而 Git 就是能够让你可以很方便的对产品的版本(version)进行管理(更新升级,回滚回退等)的优秀工具。Git 主要是程序猿用来对源代码进行托管以方便迭代更新以及误操作的回退,但是事实上,他可以对任何文件进行版本控制,比如图片,文档等等。

Git 的演变

这里简要介绍一下 git 的演变历史。任何一个产品,对他进行改进升级,免不了会产生多个版本,最简单的办法就是用多个目录分别存放,然后用不同的名称加以区分,这就是最简单的本地版本控制系统。

但是如果是多人协作的项目该怎么办呢,这时候就需要对版本进行集中化的控制,团队成员可以从版本中心下载最新的版本,对其进行修改后,再提交到版本控制中心。当然,有专门的的人员对提交的申请进行控制。这就是集中化的版本控制系统。

由于核心版本都集中在版本控制中心,这就会面临单点故障的风险,虽然可能根一些本地电脑的记录进行恢复,但是不能保证本地电脑一定会保存有完整的项目修改记录。于是分布式版本控制系统应运而生。每一次提取,都是对代码仓库的完整备份,所以成为分布式。Git 就是一个分布式版本控制系统。

Git 和其他版本控制系统的一些区别

许多其他的版本控制系统关注文件的具体细节,比如记录哪些文件做了修改,修改了什么地方。

而 Git 关注的是整体是否发生变化,并且是对文件直接进行快照。如果某个版本中的某个文件没有发生变化,为了提高性能,就依然保存上一次的快照。

Git 文件的三种状态

Git 文件主要有三种状态,已修改(modified),已暂存(staged)和已提交(committed)。这三种状态的文件分布在三个区域:工作目录,暂存区域和本地仓库。他们之间的流转流程如下。

一般的工作流程是:

  1. 对工作目录中的文件进行修改
  2. 对修改后的文件进行快照,然后保存到暂存区域。
  3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。

Git 的获取

windows 的 Git 可以从这里获取:http://msysgit.github.com/

安装以后需要配置用户名和邮箱,这是很重要的,以后对版本作了修改,记录的作者信息就是从这里来的。

$ git config --global user.name "yourname"
$ git config --global user.email youremail@example.com

接下来还有一些其他的配置

$ git config --global core.editor emacs    #文本编辑器,支持 vi 和 vim$ git config --global merge.tool vimdiff   #差异分析工具,支持kdiff3,tkdiff,meld,xxdiff, #emerge,vimdiff,gvimdiff,ecmerge,和 opendiff

查看配置信息

$ git config --list$ git config user.name      #查看某个具体的配置信息jianqiangli

简单清晰的 Git 版本控制(一)------ 一些宏观认识的基础相关推荐

  1. VS Code简单使用git版本控制工具管理代码

    前提准备工作: 本文是基于已经安装了git的基础上再使用VS Code对git简单使用的,如果打开一个已经用git管理的项目的话,你会发现项目的根目录里面出现一个 .git文件,如下图. 灰色文件夹. ...

  2. Git 版本控制之 GitFlow

    来源:  http://t.cn/EbZKx96 最近在着手制定开发规范,想要把项目正规高效的跑起来.计划引入 Git 版本控制,Git-Flow 便成为了首选.因为之前并没有过多接触,所以先花些时间 ...

  3. git版本控制工具(二)----本地版本库的常用操作

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  4. 非程序员如何使用 Git——版本控制你的生活

    在协同工作和版本控制方面,Git 绝对是一个优秀的工具,但其优点并不被大众所熟知.在过去的几年中,由于大众对于文字处理,电子表格(译者注:这里暗指Word和Excel,下同.)以及其他常用的功能的需求 ...

  5. git修改服务器的命令行,Git版本控制工具安装及命令行操作

    很多小伙伴不知道如何来安装Git版本控制工具,对于命令操作比较陌生.本文做了一个详细的文档,希望对大家有所帮助. 1.git 是什么一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制 ...

  6. 《Git版本控制管理(第2版)》——4.3 Git在工作时的概念

    本节书摘来自异步社区<Git版本控制管理(第2版)>一书中的第4章,第4.3节,作者:[美]Jon Loeliger , Matthew McCullough著,更多章节内容可以访问云栖社 ...

  7. Git版本控制管理——远程版本库

    之前提到的Git的所有操作都是在本地完成的,而实际项目开发并不是一个人就可以搞定的,通常需要团队的协作,而这些协作可能又不是在同一个地区的,这就涉及到Git的分布式特性了. Git的分布式特定会涉及到 ...

  8. git版本控制以及分支管理

    git版本控制以及分支管理--一起乘坐时光机 四.深度剖析 一.版本控制---时光机穿梭 1.熟悉版本 2.版本回退 3.管理修改 1.管理修改以及理解工作的原理 2.撤销修改的内容 3.删除文件 二 ...

  9. Git版本控制工具的使用一

    Git是一个开源的分布式版本控制工具,它的开发者就是Linux操作系统的作者Linus Tovarlds.Git被开发出来的初衷是为了更好的管理Linux内核,如今却被广泛地用于全球各大大中小型的项目 ...

  10. 16年4月21号:Git版本控制工具的使用

    Git的基本概念:开源的分布式版本管理工具,可以用来跟踪.记录你的代码工作,为个人的开发及团队协作提供便利.它的第一个特点就是跟踪.记录代码.现在介绍Git中的基本概念:仓库:在Git中,我们将需要进 ...

最新文章

  1. 某程序员统计同事工作时间上厕所次数!有人一天去两次,有人一天去十次!楼主:懒人屎尿多!网友:最闲的是你!...
  2. python画图简单代码-用python进行简单的画图操作
  3. Java语言程序设计(基础篇) 第十章 面向对象思考
  4. 【图像处理opencv】_图像几何变换
  5. git 操作简明扼要,命令不需要多,够用就行
  6. 蓝桥杯第七届决赛之---阶乘位数
  7. java $ class_java文件编译后额外生成的$1.class是怎么一回事
  8. java多按钮筛选条件_Excel办公技巧:如何对表格数据进行自定义筛选?
  9. python抛硬币代码_求助python掷硬币
  10. HDU-简易版之最短距离(最短路)
  11. cron计划任务、chkconfig工具、systemd管理服务、unit、target介绍
  12. leetcode41. First Missing Positive
  13. 在mac os中设置环境变量
  14. 抓取html文件swf,如何把网页上的flash动画保存为swf格式文件(缓存提取)
  15. python免费程序-Python——免费观看全网视频小程序
  16. 【FPGA】Verilog编程实现SDRAM读写(一) ----- 初识SDRAM
  17. php.ini error reporting,解决PHP.ini中的error_reporting不起作用
  18. 自动切换手机耳机模式和话筒模式
  19. 第二章作业题1-顺序表-计算机17级 7-1 jmu-ds-集合的并交差运算 (15 分)
  20. kubernetes 降本增效标准指南| 容器化计算资源利用率现象剖析

热门文章

  1. BF2地图下载 战地系列非官方单机地图集
  2. 关于RxJava2.0你不知道的事
  3. linux目录显示蓝色,centos系统创建文件夹目录显示颜色
  4. [备忘]Oracle数据库字段缺省值函数-ID值自动填充
  5. volatile原理:happen before
  6. lync正在连接到exchange服务器,部署企业版lync2013之六:lync与exchange集成-1
  7. 视频:青春期(青春痘1)
  8. CImage::Loda 方法加载图片失败,因为vs2013中该方法不支持中文变量
  9. Xcode中蓝色和黄色文件夹的区别
  10. ABAP BAPI 复制标准项目模板实现项目立项