git 笔记一

什么是版本控制

  所谓版本控制就是记录对文件的修改记录,这样以后就能回退到需要的 版本。比如你对一段代码进行了几次修改,有几次修改不想要了,如果 使用了版本控制,就可以回退到未做这些修改之前。这在项目管理中非常重要,利用版本控制,我们不仅可以回退到某次修改,而且可以根据记录知道是谁做了那些修改,以便在程序出现问题是,定位到是谁的修改导致的。

  

版本控制系统分类

  本地版本控制系统(LVCS)、集中式版本控制系统(CVCS)、分布式版本控制系统(DVCS)。LVCS在本地保存更改记录,没有什么协作能力,CVCS则由一台中心服务器保存更改记录,本地只保留有原始文件,这样有一个缺陷就是中心服务器如果挂掉影响会很大,而且必须联网才能协作。而DVCS与CVCS的不同在于,客户机上每次check out的时候都是保留的是一个完整的镜像,就算中心服务器挂掉,也可以在本地工作,并且任意一台客户机都能够恢复中心服务器的数据,尽管也有可能会损失一些最新的修改。目前使用比较广泛的Git就是一种分布式版本控制系统。

Git 基础

  1. Git保存的是文件的快照而不是文件的差异

      很多版本控制系统保存的都是每次修改后的差异,通过差异与源文件一起恢复到某个版本。如下图所示:



    而Git保存的是完整的文件快照(snapshot),这一点使得Git与其他版本控制系统有本质区别,使得Git的回退,分支等操作几乎没有任何代价。

  2. 几乎所有的操作都是本地的

      除了最终将修改合并进入远程版本库,其他几乎所有的操作都是在本地完成的,这一点也依赖于本地Git几乎就是远程版本的一个镜像,因此本地可以完成所有的操作,而不需要去请求远程。
  3. Git的三个状态

      Git管理的文件具有三个主要状态:Commit,Stage和modified。commit是指已经将修改提交到了版本控制数据库,stage是指将一个文件标记为这个版本,并在下一次commit时提交。modified则是指文件已经修改,但是还没有commit到数据库。这三种状态又使得Git具有三个工作区:



    一个典型的工作流程就是在working directory中某些文件做了修改,然后提交到staging area,最后提交到git directory,这时就形成了一版本。

Git 笔记一 Git简介的更多相关文章

  1. Git 笔记三 Git的初步使用

    Git 笔记三 Git的初步使用 在上一篇中,学习了如何配置Git环境,这一篇,开始学习Git的初步使用.Git的初步使用还是很简单的.总体上知道git init, git clone, git ad ...

  2. Git 笔记二-Git安装与初始配置

    git 笔记二-Git安装与初始配置 Git的安装 由于我日常生活和工作基本上都是在Windows上,因此此处只说windows上的安装.Windows上的安装和其他程序一样,只需要到http://g ...

  3. 项目管理---git----快速使用git笔记(一)------git的简单介绍

    最近svn代码管理服务器崩溃了,切换到git来运作. 经过几天的使用,感觉很不错. 尤其是代码合并到正式版本之前 可以对代码进行 code review. 这样能很好的保证团队的代码质量和一些重复代码 ...

  4. Git笔记:Git介绍和常用命令汇总

    Git 是一个开源的分布式版本控制系统,与 CVS, Subversion 等不同,它采用了分布式版本库的方式,不需要服务器端软件支持. 工作流程 Git 的工作流程大致如下: 克隆 Git 资源作为 ...

  5. 项目管理---git----快速使用git笔记(二)------git的本地安装

    下载安装包 在使用Git前我们需要先安装 Git.Git 目前支持 Linux/Unix.Solaris.Mac和 Windows 平台上运行. Git 各平台安装包下载地址为:http://git- ...

  6. Git、Github习笔记01——Git本地仓库

    作者:Eventi 出处:http://www.cnblogs.com/Eventi 欢迎转载,也请保留这段声明.谢谢! git简介 版本控制软件,由Linus(linux开发者)开发,最初用来对li ...

  7. git的学习笔记(二):git远程操作

    1.创建ssh key ssh-keygen -t rsa -C "your_email@example.com" 执行命令后会在用户的家目录生成.ssh的隐藏文件夹,文件夹里有公 ...

  8. 【Git 使用笔记】第一部分:安装git 和 使用git

    第一部分:安装git(本人使用ubuntu系统) sudo apt-get install git 第二部分:基本配置 git config core.filemode false//忽略文件属性的修 ...

  9. 项目管理---git----快速使用git笔记(七)------coding.net项目管理多人操作的流程规范--合并代码审核

    我们在前面已经介绍了coding.net和本地git的基本用法. 但是多人协作开发时情况会复杂得多,所以我们最好有一些规范来保证项目多人开发顺利进行. 比如说 规范一 master代码分支  需要开启 ...

随机推荐

  1. CentOS 6.5 升级内核 kernel

    本文适用于CentOS 6.5, CentOS 6.6,亲测可行,估计也适用于其他Linux发行版. 1. 准备工作 1.1 下载源码包 Linux内核版本有两种:稳定版和开发版 ,Linux内核版本 ...

  2. Java数据库缓存思路

    为什么要用缓存?如果问这个问题说明你还是新手,数据库吞吐量毕竟有限,每秒读写5000次了不起了,如果不用缓存,假设一个页面有100个数据库操作,50个用户并发数据库就歇菜,这样最多能支撑的pv也就50 ...

  3. 数据泵导出/导入Expdp/impdp

    一下转自 http://blog.csdn.net/jionjionyoushen/article/details/6789686 数据泵导出/导入Expdp/impdp Oracle 10g引入了D ...

  4. untiy绘制网格mesh

    关于绘制网格, 雨松前辈 已经解释的非常的到位,这里我只是搬运工,实在是感觉自己去描述的话不会有雨松大神描述的清楚,该文章循序渐进,一步步引导读者去理解unirty 绘图机制,真的是没有比这个再好得了 ...

  5. PHP 日期格式化 参数参考

    a - "am" 或是 "pm" A - "AM" 或是 "PM" d - 几日,二位数字,若不足二位则前面补零; 如: ...

  6. poj3301 三分

    Texas Trip Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4998   Accepted: 1559 Descri ...

  7. rr

        times = gcd(rotdist,length);  printf( ;i<times;i++) {  t = vec[i];   j = i;    ) {   k = j+ r ...

  8. beini系列_2_beini装入虚拟机

  9. MySQL数据库恢复(使用mysqlbinlog命令)

    binlog是通过记录二进制文件方式来备份数据,然后在从二进制文件将数据恢复到某一时段或某一操作点. 1:开启binlog日志记录 修改mysql配置文件mysql.ini,在[mysqld]节点下添 ...

  10. Android开发重修

    Android程序开发的重新学习 #####Mars课程学习笔记20140926 1.Service主要用于完成耗时较长的操作,没有图形化界面. 2.Content Provider数据的提供者,是A ...