Git-分布式版本控制工具

news/2024/7/24 7:09:17 标签: git, github

目录

Git的简单介绍

软件基本理论/原理的介绍

软件的下载、安装、配置

软件实际应用案例


Git的简单介绍

版本控制概念

正如文章标题所写,git是一个分布式版本控制工具

什么是版本控制呢?

下面给出一个场景:老板让你写一个方案,你写好了之后自信满满的交给了老板,我们管这个版本的方案叫初版。但是老板觉得有点小瑕疵,让你改改。你只得按老板的要求在原方案基础上做了一些改动,然后又将改后的第二版交给了老板。但老板还觉得不够完美,让你再改改。于是,你就又将第二版改了一下,将改后的第三版交给了老板。老板看后,若有所思,不知是良心发现还是突然顿悟了你第一版的精妙之处,对你说:我还是觉得第一版好。此时,你也许已经把第一版是什么样子忘得一干二净了...

这虽然是个搞笑段子,但艺术来源于生活。。。其实最大的问题就是不能回溯到之前的版本,而版本控制工具就是解决这个问题的,它帮我们管理了各个版本的方案/项目,从而使我们可以回溯到之前的版本,这是非常重要的。

目前主流的版本控制器有: 

  • Git
  • SVN
  • CVS
  • ... 等等,如今有非常多的版本控制工具,但最为主流的是Git和SVN。上面说到了Git是分布式版本控制工具,而SVN是集中式的版本控制工具。下面会简单介绍几类常用的版本控制方式。

版本控制分类

1.本地版本控制

记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。

2.集中版本控制

所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。

所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看 不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单一的服务器 上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品: SVN、CVS、VSS。

3.分布式版本控制

所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地 提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数 据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。

 

Git基本理论

工作区域

Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository 或Git Directory、即本地仓库)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四 个区域之间的转换关系如下:

  • Workspace:工作区,就是你平时存放项目代码的地方
  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列 表信息
  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数 据。其中HEAD指向最新放入仓库的版本
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据 交换

Git其实可以看作是一个管理的服务,每一个文件夹就是一个Git服务所管理的范围,.git文件夹存储了管理当前文件夹内文件的信息:

  • Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间。
  • WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间。
  • Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在 暂存区。
  • Local Repo:本地仓库,一个存放在本地的版本库。
  • Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。

git的工作流程一般是这样的:

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库。 因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

 

Git的下载、安装、配置

下载

打开 [git官网] https://git-scm.com/,下载git对应操作系统的版本。

官网下载太慢,我们可以使用淘宝镜像下载:http://npm.taobao.org/mirrors/git-for-windows/

无脑安装

git配置及其常用命令,参考该网址:Git 大全 - Gitee.com


http://www.niftyadmin.cn/n/179531.html

相关文章

C++————构造函数与析构函数

在C中,我们有一个专门有一个函数给类的成员赋值,这个赋初值的工作由构造函数来完成。 说明: 1.构造函数的名字必须与类名相同,否则编译程序将把它当成一般的成员函数来处理。 2.构造函数没有返回值,在定义构造函数时&a…

文章生成器-免费的文章生成器

随着信息爆炸的时代,自媒体人员不仅需要创造性的策略,还需要快速产生具有高质量文章的能力,这样才能快速响应趋势并保持优势。文章生成器,一款基于人工智能和自然语言处理技术的文本生成软件,可在没有任何人工干预的情…

蓝桥杯算法心得——小明的彩灯(差分)

大家好,我是晴天学长,今天的题目类型是前缀和的亲戚(差分),两个互逆,实际运用非常广泛,加油!需要的小伙伴请自取哦!💪💪💪 1 &#xf…

整懵了,蚂蚁金服4面成功拿下测开offer,涨薪10k,突然觉得跳槽也不是那么难

蚂蚁的面试挺独特的,每轮面试都没有HR约时间,一般是晚上8点左右面试官来一个电话,问是否能面试,能的话开始面,不能就约一个其他时间。 全程4面,前四面技术面,电话面试,最后一面是HR面…

Linux shell jq工具(shell读取json、shell脚本读取json、shell json、json工具)

文章目录jq工具安装在线安装离线安装使用方法读取和修改 JSON 文件中的一个字段(麻烦)读取和修改 JSON 文件中的一个字段(简洁)1读取和修改 JSON 文件中的一个字段(简洁)220230329 这个稍复杂,读…

七、MyBatis自定义映射resultMap

【前提准备】 ①创建表t_emp和t_dept ②创建实体类javaBean对象 ③创建mapper接口和映射文件 1.resultMap处理字段和属性的映射关系【表名的字段和实体类属性名称不一致】 表名是emp_name,实体类是empName不一致 ①在EmpMapper接口中 /*** 查询所有员工信息*/ List<Emp&g…

华为OD机试题【最近的点】用 Java 解 | 含解题说明

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典本篇题目:最近的点 题目 同一个数轴 x 有…

ROHS认证怎么办理?周期多久?

RoHS是由欧盟立法制定的一项强制性标准&#xff0c;它的全称是《关于限制在电子电气设备中使用某些有害成分的指令》(RestrictionofHazardousSubstances)。该标准已于2006年7月1日开始正式实施&#xff0c;主要用于规范电子电气产品的材料及工艺标准&#xff0c;使之更加有利于…