yinhuanyi

前言:

  Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

  Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 很多 Freedesktop 的项目迁移到了 Git 上。

版本控制系统分类说明

  版本控制系统可以分为三类:

  第一类:本地版本控制系统

  第二类:集中式版本控制系统

  第三类:分布式版本控制系统

本地版本控制系统:

  本地版本控制系统较容易理解,本地版本控制系统不涉及多人协作开发,项目中所有的文件只能是作者才能够编辑和修改。

集中式版本控制系统:

  版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟。而且如果中央服务器宕机,那么所有人将无法工作  

发布式版本控制系统:

  和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。远端的服务器宕机也不要紧,将任意一个本地的版本库拷贝到远端服务器上就是

实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

Git分布式版本控制系统本地版本库解析

  本地版本库分为:工作区和.git版本库两个部分,而在版本库中又有暂存区和对象库,对象库实质上就是本地版本库  

  假设此时在个人电脑上已经创建了一个workspace工作区,且已经安装了git,创建了.git版本库。

  如果工作目录中有文件需要修改的话,那么git会先保存源文件,将工作目录的文件先创建成文件对象,保存在对象库中。但是对象库中的文件名为原文件对应的哈希码的值。工作目录中的文件添加到对象库里面的过程分为两个部分,第一个部分是暂存,第二个部分是提交。

  暂存就是将工作目录中的所有的文件,与对象库中的以哈希码为文件名的文件进行一一对应。这个索引就是暂存区,可以想象为源文件与对象文件的映射。

  那么提交就是将索引的对象块也保存在对象库中,此时图中指向对象库中的索引块的圆圈就是branch分支,分支就是一个版本控制系统非常重要的概念,因为分支的存在,使得项目版本的回退十分方便。那么一旦我们提交之后,就会在对象库中生成一颗树对象。

 

  如果此时,文件的代码修改了,那么就会在对象库中再创建一个以哈希码为文件名的文件,且索引块指向新创建的文件对象。但是此时第一次提交的树对象并没有发生变化。

  如果第二次提交,会再次创建一棵树。

  那么如果每次文件变化就提交,变化就提交,就会形成一个链式的树对象。那么那个圆圈就是反应哪个版本提交的内容。因此,如果这个圆圈指向了哪个树对象,当前的工作目录的版本就回退到哪个版本。默认情况下,这个branch指向的是最新版本的树对象,如果现在想让工作目录为第二版,那么这个圆圈会指向第二版的树。这就是git的基本工作方式。

 

  git的基本使用流程

 

Git创建本地版本库

 1 1yum install -y git   #如果想一次性全部安装git的工具,安装这个git-all.noarch  就ok了
 2 
 3 2mkdir myproject # 创建一个目录作为本地工作目录
 4 
 5 3:cd myproject; git init # 在工作目录中初始化仓库
 6 
 7 4vi README # 创建一个README文件
 8 
 9 5:git add README # 将README文件添加到缓存中 或者 git add . # 将当前工作目录都添加到暂存
10 
11 6:git config --global user.name \'yhy\'
12 git config --global user.email \'yhy@1.com\'  # 在提交前指定全局的提交者的信息
13 
14 git config -l  # 查看git的配置信息
15 
16 cat ~/.gitconfig  # 会在用户的家目录下生成一个.gitconfig文件
17 
18 7:git commit -m "v0.0.1" # 将暂存中的提交到git仓库

 

Git配置文件说明

  git的配置文件说明(三级配置) git config, 每一次仓库的提交都要给出两个配置文件

  仓库特有:工作目录/.git/config

  全局级别:~/.gitconfig (使用--global)

  系统级:/etc/git/gitconfig(使用--system)

 

分类:

技术点:

相关文章:

  • 2021-11-24
  • 2022-01-26
  • 2021-11-11
  • 2021-12-24
  • 2021-09-25
  • 2021-04-28
  • 2021-07-10
  • 2021-10-23
猜你喜欢
  • 2022-01-27
  • 2022-12-23
  • 2021-06-18
  • 2021-12-28
  • 2021-12-28
  • 2021-11-25
  • 2021-11-25
相关资源
相似解决方案