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代码分支 需要开启 ...
随机推荐
- wlan0 Interface doesn't support scanning : Device or resource busy
Problem: wlan0 Interface doesn't support scanning : Device or resource busy. Solved Way: sudo ifcong ...
- Eclipse汉化后怎么改回英文版 (中文 改 英文)
Eclipse汉化后怎么改回英文版(可切换中英文) 很多朋友将MyEclipse汉化后还想改回英文的,其实只要修改MyEclipse的配置文件就可以了,这里我以MyEclipse7.0为例演示一下如何 ...
- 多种下载文件方式 Response.BinaryWrite(byte[] DocContent);Response.WriteFile(System.IO.FileInfo DownloadFile .FullName);Response.Write(string html2Excel);
通过html给xls赋值,并下载xls文件 一.this.Response.Write(sw.ToString());System.IO.StringWriter sw = new System.IO ...
- 洛谷 P1066 2^k进制数
P1066 2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. ( ...
- win7添加usb3.0驱动(错误代码1392,文件或目录损坏且无法读取)
Win7添加usb3.0驱动 之前一直按照网上的方法执行dism命令挂载时,总是失败,错误代码1392,显示原因是文件或目录损坏且无法读取.这个错误以前在装机时老是出现导致系统安装不成功,在BIOS中 ...
- 在shell中运行以不同方式运行脚本
在shell当中,可以有3中方式运行脚本: 1 . ./script_name 或者source ./script_name 2 直接./script_name 3 ./script_name &am ...
- show_space/get_alert_log/get_trace_file
1.get_alert_log 获取alert文件的路径和名称 set serveroutput on --设置输出,让sqlplus在屏幕上可以输出.(要加入到login.sql中!) ...
- Unsupported major.minor version 52.0 处理方式
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/globalroam/openstac ...
- log4j配置文件及nutch中的日志配置
使用slf4j作为日志系统时,由于slf4j只是一个接口,它需要一个具体实现来执行. 具体参考http://blog.csdn.net/jediael_lu/article/details/43854 ...
- Manasa and Stones
from __future__ import print_function def main(): t = int(raw_input()) for _ in range(t): n = int(ra ...