git学习一 git基础介绍

一:什么是分布式版本控制系统?

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

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

二:什么是Git

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

补充:git与github的区别?

git是一种版本控制系统。跟svn、cvs是同级的概念。
github是一个网站,给用户提供git服务。这样你就不用自己部署git系统,直接用注册个账号,用他们提供的git服务就可以。
那是不是只有一个提供可以git服务的网站呢,答案是否定的,除了那个全世界最大的代码网站(github),还有一些小众的gitcafe、gitlab…等等,以及受国内开发者欢迎的oschinagit,当然是用这些服务都是必须注册使用的,另外再强调一件事情,越来越多的公司都开始用git进行管本控制了,公司肯定是自己搭建git服务了,最常见的是gitlab。

三:使用git有什么好处?

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

四:git基本工作原理?

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

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

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

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

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

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

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

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

基本的git工作流程如下:

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

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

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

 1.git是分布式版本控制系统,svn是集中式版本控制系统。即:svn版本库是集中放在中央服务器的,而干活的时候,用的都是自己电脑,所以首先要从中央服务器那里得到最新版本,然后干活,干完后,需要把自己做完的活推送到中央服务器,并且必须联网才能干活;git没有中央服务器,每个人的电脑就是一个完整的版本库,这样工作的时候不需要联网,多个人协作工作只需把各自修改的文件推送给对方,就可以互相看到对方的修改。
 2.git把内容按元数据方式存储,svn按文件方式存储。即:所有的资源控制系统都是把文件的元信息隐藏一个类似.svn文件夹里;.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。

3.本地增加分支:Git本地和服务器端结构都很灵活,所有版本都存储在一个目录中,你只需要进行分支的切换即可达到在某个分支工作的效果,

而SVN则完全不同,如果你需要在本地试验一些自己的代码,只能本地维护多个不同的拷贝,每个拷贝对应一个SVN服务器地址

4.分布式提交:Git 可以本地提交代码,Git有利于将一个大任务分解,进行本地的多次提交,而SVN只能在本地进行大量的一次性更改,导致将来合并到主干上造成巨大的风险

5.日志查看:Git 的代码日志是在本地的,可以随时查看,SVN的日志在服务器上的,每次查看日志需要先从服务器上下载下来。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章