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代码分支 需要开启 ...
随机推荐
- 多路复用I/O poll()
1.基本知识 poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制.poll和selec ...
- _js day12
- extern C的作用详解
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码.加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C+ ...
- encodeURI与encodeURIComponent的区别
webservice输出时选择的格式与Content-Type报文头有关 encodeURI与encodeURIComponent的区别:后者会将URI进行编码(包括"://")
- Linux基础知识笔记
1.case的命令格式 #!/bin/sh echo "please input number 1 to 3" read number case $number in ) e ...
- onblur判断数字
window.onload = function () { document.getElementById('text1').onblur = function () { if (isNaN(docu ...
- kafka的一些常用命令
启动zookeeper bin/zookeeper-server-start.sh config/zookeeper.properties & 启动kafka bin/kafka-server ...
- visifire 图表属性样式设置说明,字体,阴影设置
- Tornado模块分类和各模块之间的关系
1. Core web framework tornado.web — 包含web框架的大部分主要功能,包含RequestHandler和Application两个重要的类 tornado.https ...
- Go and JSON
Go and JSON 在使用Go开发web项目的过程中, 数据库读写操作与JSON格式的输入输出是两块最基础的模块, Go的标准库已经帮我们做了很多, 熟悉database/sql与encoding ...