Git 笔记一 Git简介
git 笔记一
什么是版本控制
所谓版本控制就是记录对文件的修改记录,这样以后就能回退到需要的 版本。比如你对一段代码进行了几次修改,有几次修改不想要了,如果 使用了版本控制,就可以回退到未做这些修改之前。这在项目管理中非常重要,利用版本控制,我们不仅可以回退到某次修改,而且可以根据记录知道是谁做了那些修改,以便在程序出现问题是,定位到是谁的修改导致的。
版本控制系统分类
本地版本控制系统(LVCS)、集中式版本控制系统(CVCS)、分布式版本控制系统(DVCS)。LVCS在本地保存更改记录,没有什么协作能力,CVCS则由一台中心服务器保存更改记录,本地只保留有原始文件,这样有一个缺陷就是中心服务器如果挂掉影响会很大,而且必须联网才能协作。而DVCS与CVCS的不同在于,客户机上每次check out的时候都是保留的是一个完整的镜像,就算中心服务器挂掉,也可以在本地工作,并且任意一台客户机都能够恢复中心服务器的数据,尽管也有可能会损失一些最新的修改。目前使用比较广泛的Git就是一种分布式版本控制系统。
Git 基础
- Git保存的是文件的快照而不是文件的差异
很多版本控制系统保存的都是每次修改后的差异,通过差异与源文件一起恢复到某个版本。如下图所示:

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

- 几乎所有的操作都是本地的
除了最终将修改合并进入远程版本库,其他几乎所有的操作都是在本地完成的,这一点也依赖于本地Git几乎就是远程版本的一个镜像,因此本地可以完成所有的操作,而不需要去请求远程。 - Git的三个状态
Git管理的文件具有三个主要状态:Commit,Stage和modified。commit是指已经将修改提交到了版本控制数据库,stage是指将一个文件标记为这个版本,并在下一次commit时提交。modified则是指文件已经修改,但是还没有commit到数据库。这三种状态又使得Git具有三个工作区:

一个典型的工作流程就是在working directory中某些文件做了修改,然后提交到staging area,最后提交到git directory,这时就形成了一版本。
Git 笔记一 Git简介的更多相关文章
- Git 笔记三 Git的初步使用
Git 笔记三 Git的初步使用 在上一篇中,学习了如何配置Git环境,这一篇,开始学习Git的初步使用.Git的初步使用还是很简单的.总体上知道git init, git clone, git ad ...
- Git 笔记二-Git安装与初始配置
git 笔记二-Git安装与初始配置 Git的安装 由于我日常生活和工作基本上都是在Windows上,因此此处只说windows上的安装.Windows上的安装和其他程序一样,只需要到http://g ...
- 项目管理---git----快速使用git笔记(一)------git的简单介绍
最近svn代码管理服务器崩溃了,切换到git来运作. 经过几天的使用,感觉很不错. 尤其是代码合并到正式版本之前 可以对代码进行 code review. 这样能很好的保证团队的代码质量和一些重复代码 ...
- Git笔记:Git介绍和常用命令汇总
Git 是一个开源的分布式版本控制系统,与 CVS, Subversion 等不同,它采用了分布式版本库的方式,不需要服务器端软件支持. 工作流程 Git 的工作流程大致如下: 克隆 Git 资源作为 ...
- 项目管理---git----快速使用git笔记(二)------git的本地安装
下载安装包 在使用Git前我们需要先安装 Git.Git 目前支持 Linux/Unix.Solaris.Mac和 Windows 平台上运行. Git 各平台安装包下载地址为:http://git- ...
- Git、Github习笔记01——Git本地仓库
作者:Eventi 出处:http://www.cnblogs.com/Eventi 欢迎转载,也请保留这段声明.谢谢! git简介 版本控制软件,由Linus(linux开发者)开发,最初用来对li ...
- git的学习笔记(二):git远程操作
1.创建ssh key ssh-keygen -t rsa -C "your_email@example.com" 执行命令后会在用户的家目录生成.ssh的隐藏文件夹,文件夹里有公 ...
- 【Git 使用笔记】第一部分:安装git 和 使用git
第一部分:安装git(本人使用ubuntu系统) sudo apt-get install git 第二部分:基本配置 git config core.filemode false//忽略文件属性的修 ...
- 项目管理---git----快速使用git笔记(七)------coding.net项目管理多人操作的流程规范--合并代码审核
我们在前面已经介绍了coding.net和本地git的基本用法. 但是多人协作开发时情况会复杂得多,所以我们最好有一些规范来保证项目多人开发顺利进行. 比如说 规范一 master代码分支 需要开启 ...
随机推荐
- Fragment 点击事件的穿透和重叠bug
从A fragment跳转到B fragment ,为了返回时不从新加载A fragment内容,通常使用add方法来将a添加到后退栈. 在B Fragment 中点击一个空白区域,如果A Fragm ...
- java文件读写的两种方式
今天搞了下java文件的读写,自己也总结了一下,但是不全,只有两种方式,先直接看代码: public static void main(String[] args) throws IOExceptio ...
- MYSQLI DEMO
1.Select // DEMO mysqli连接方式参考 $db = new mysqli("localhost:3306", "root", "& ...
- 【0】Laravel 5.1 简介
1.简介 Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来:它可以帮你构建一个完美的网络APP,而且每行代码都可以 ...
- js判断是否为空的代码
方法一: var keyVal= $("#key").val(); if(keyVal==undefined || keyVal=="" || keyVal== ...
- js中return;、return true、return false;区别
一.返回控制与函数结果, 语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二.返回控制, 无函数结果,语法为:return; 在大多数情况下,为事件 ...
- UIP协议栈
UIP协议栈笔记 http://blog.chinaunix.net/uid-23247944-id-2974928.html
- 继续畅通工程--hdu1879
继续畅通工程 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- Friendly number
Friendly number Long numbers can be made to look nicer, so let’s write some code to do just that. Yo ...
- WiEngine+Eclipse+CDT+Sequoyah实现c++编程智能感知提示
经过一段时间的摸索,我初步肯定自己基于WiEngine平台和C++开发跨Android/iPhone游戏的最佳(至少目前)环境为: Eclipse+CDT+Sequoyah 第一,JAVA代码调试技术 ...