您的位置:首页 > 其它

git学习一 git基础介绍

2015-10-29 21:24 281 查看
一:什么是分布式版本控制系统?

把代码仓库完整镜像下来,这样一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次克隆操作,实际上都是一次对代码仓库的完整备份。

更进一步,许多这类系统都可以指定和若干不同的远端代码仓库进行交互。因此你就可以在同一个项目中,分别和不同工作小组的人相互协作。

二:什么是git?

Git是一款免费的,开源的,分布式版本控制系统。每一个Git工作目录是一个带有完整历史记录和版本信息的仓库,不依赖于网络和中央服务器。

三:使用git有什么好处?

更顺畅的工作流程,开发过程中,可以完全离线操作。
快速,git分布式架构使得本地仓库含有所有的历史版本信息,你可以在不同的版本之间快速切换
弹性的本地分支,在svn下,你建一个分支需要把源代码复制到另外一个文件夹,而在git下,创建分支代价非常小,只需一个命令
仓库目录结构简洁,用git复制一个项目,只会在项目根目录创建一个.git的目录,而其他目录很干净
内容按元数据方式存储,所有的版本信息够位于.git目录下
完整性好更易于协助开发
用户群大,github上更是有无数个代码仓库

四:git基本工作原理?

git有三种状态:已提交(committed)已修改(modified)已暂存(staged)

已提交(committed):表示数据已经安全的保存在本地数据库中。

已修改(modified):表示修改文件,但是还没保存到数据库中。

已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

由此引入git项目的三个工作区域的概念:git仓库,工作目录以及暂存区域。



git仓库目录:git用来保存项目的元数据和对象数据库的地方。这是git中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。

工作目录:对项目的某个版本独立提取出来的内容。这些从git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。

暂存区域:一个文件,保存下次将提交的文件列表信息,一般在git仓库目录中,有时候也被称作”索引“。

基本的git工作流程如下:

在工作目录中修改文件。
暂存文件,将文件的快照放入暂存区域。
提交更新,找到暂存区域的文件,将快照永久性保存到git仓库目录。

如果git目录中保存着的特定版本文件,就属于已提交状态。如果做了修改并已放入暂存区域,就属于已暂存状态。如果自上次取出后,做了修改但还没有放到暂存区域,就属于已修改状态。

五:git与svn的区别?(重点)

1.git是分布式版本控制系统,svn是集中式版本控制系统。即:svn版本库是集中放在中央服务器的,而干活的时候,用的都是自己电脑,所以首先要从中央服务器那里得到最新版本,然后干活,干完后,需要把自己做完的活推送到中央服务器,并且必须联网才能干活;git没有中央服务器,每个人的电脑就是一个完整的版本库,这样工作的时候不需要联网,多个人协作工作只需把各自修改的文件推送给对方,就可以互相看到对方的修改。

2.git把内容按元数据方式存储,svn按文件方式存储。即:所有的资源控制系统都是把文件的元信息隐藏一个类似.svn文件夹里;.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。

3.git分支和svn不同。即:git分支可以从同一个工作目录下快速的在几个分支间切换,容易发现未被合并的分支,简单而快捷的合并文件;而svn就是版本库中的另外一个目录,若是想知道是否合并一个分支,需要手工运行。

4.git没有一个全局的版本号,svn有。即:svn版本号是任何一个相应时间的源代码快照;而git有一个哈希值标识唯一。

5.git的内容完整性优于svn。即:git的内容存储使用的是哈希算法,这能保证代码内容的完整性,确保在遇到磁盘和网络故障问题时降低对版本库的破坏。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: