Git简介
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。
Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。
Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。
Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时,都十分高效,而且非常的高大上。
集中式与分布式的区别:
-
最常见的集中式版本控制系统是SVN,版本库是集中放在中央处理器中的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器那里获取最新的版本,然后开始干活,干完活后需要把自己做的东西推送到中央服务器。而且集中式版本控制系统是必须联网才能工作的,一旦断网,所有人都将无法开展工作,可见集中式版本控制系统的局限性是比较大的。
-
Git是目前世界上最流行的分布式版本控制系统,它没有中央处理器,每个人的电脑就是一个完整的版本库,同时在工作的时候也不需要联网,因为版本都存储在自己的电脑上。我们随时都可以将自己在工作区间做的修改提交到本地仓库,最后将自己的本地版本仓库推送到远程版本仓库进行合并,效率非常高。
Git与SVN的区别:
Git | SVN | |
---|---|---|
核心区别 | 分布式 | 集中式 |
存储方式 | Git按元数据方式存储 | SVN按文件方式存储 |
分支 | 分支是Git的必杀技能,将Git从版本控制系统的家族中突显出来 | 分支在SVN中一点也不特别,其实它就是版本控制系统中的另外一个目录 |
全局版本号 | Git没有,是目前Git相较SVN缺少的最大特征 | SVN有全局版本号 |
内容完整性 | Git的内容存储使用的是SHA-1哈希算法,确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏 | 在这方面SVN的性能是低于Git的 |
安全性 | 和SVN相比,Git的每个分支都有一个完整的版本库,即使某个分支的电脑崩掉了也不要紧,可以随时从其他电脑拷贝过来 | 而SVN版本控制系统的中央服务器一旦挂掉,所有人的工作都将无法开展 |
Git的工作流程:
- 克隆Git资源作为工作目录;
- 在克隆的资源上添加或修改文件;
- 如果其他人更改,你可以更新资源;
- 在提交前查看修改状态;
- 提交修改;
- 在修改完成后,如果发现错误,可以撤回提交,并进行再次修改和提交。
Git工作区、暂存区及版本库概念:
- 工作区:自己电脑中能看到的工作目录
- 暂存区:stage或index,一般放在
.git(可隐藏文件)
目录下的index
文件(.git/index)中,所以我们有时候也把暂存区叫做索引 - 版本库:工作区中有一个可隐藏目录
.git
,这个实际上就是Git的本地版本仓库
上图中,左侧为工作区,右侧为版本库。在版本库中被标记为“index”的区域为暂存区,被标记为“master”的是master主分支,“HEAD”实际上是指向master主分支的一个游标,“objects”标识的区域为Git的对象库,实际位于.git/objects
目录下,里面包含了创建的各种对象及内容。
当工作区进行修改(或新增)的文件执行git add
命令时,暂存区的目录树将被更新,同时工作区修改(或新增)的文件内容被写入到对象库(此时的对象库可以认为是暂存区中的对象库)中的一个新的对象中,而该对象的ID被记录在暂存区中的文件索引中。
当执行git commit
提交命令时,暂存区的目录树就被提交到版本库中的对象库(objects)中,master主分支会做出相应的更新,即master指向从暂存区提交过来的目录树。
因为我们在创建Git版本库时,Git自动为我们创建了唯一的一个master分支,所以此刻执行git commit
命令就是往master
分支上提交更改。
整个过程可以简单理解为,需要提交的文件修改通通先放到暂存区,然后一次性提交暂存区的所有修改。
相关文章:

Git简介
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。 Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。 Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式&#x…...

STM32入门学习之定时器输入捕获
1.定时器的输入捕获可以用来测量脉冲宽度或者测量频率。输入捕获的原理图如下: 假设定时器是向上计数。在图中,t1~t2之间的便是我们要测量的高电平的时间(脉冲宽度)。首先,设置定时器为上升沿捕获,如此一来,在t1时刻可…...
贪心算法:基础入门篇
贪心算法:基础入门篇 文章目录: 贪心算法:基础入门篇一、认识贪心算法二、常见贪心问题2.1 纸牌问题2.2 背包问题(基础版)2.3 简单数学证明问题 三、总结 一、认识贪心算法 在求最优解的问题中,以某种贪心…...

【Windows10下启动RocketMQ报错:找不到或无法加载主类 Files\Java\jdk1.8.0_301\lib\dt.jar】解决方法
Windows10下启动RocketMQ报错:找不到或无法加载主类 一、问题产生二、产生原因三、解决办法 一、问题产生 参考RocketMQ Github官网上的说明,下载rocketmq-all-5.1.3-bin-release.zip,解压配置环境变量后,执行如下命令:…...

深入篇【Linux】学习必备:进程理解(从底层探究进程概念/进程创建/进程状态/进程优先级)
深入篇【Linux】学习必备:进程理解(从底层探究进程概念/进程创建/进程状态/进程优先级) 一.进程概念(PCB/task_struct)二.查看进程(top/ps)三.创建进程(fork)四.进程状态(僵尸进程/孤儿进程)五.进程优先级(PRI/NI) 一.进程概念(PCB/task_struct) 1.什么…...

Python 潮流周刊#15:如何分析 FastAPI 异步请求的性能?
你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。标题取自其中一则分享,不代表全部内容都是该主题,特此声明。 本周刊精心筛选国内外的 250 信息源,为你挑选最值得分享的文章、教程、开源…...

基于Java+SpringBoot+Vue的网吧管理系统设计与实现(源码+LW+部署文档等)
博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…...

redis设置database 不生效剖析
设置database 不生效剖析 前言配置加载类问题commons-pool 对象池 主页传送门:📀 传送 前言 事情是这样的 今天在拉取了同事的代码做redis缓存设置的时候,发现即使已经设置了database, 但是存数据的时候还是用的默认0数据库。这引起了我的好…...

汽车及汽车零部件行业云MES解决方案
汽配行业现状: 随着经济全球化进程加快,一直走在智能化改造,数字化转型前沿的汽车行业企业,面临的信息化需求也日益增加,不管德系,美系还是日系供应链的各大厂商,均将企业信息化,数字…...
算法工程师-机器学习面试题总结(4)
深度学习 DNN 描述一下神经网络?推导反向传播公式? 神经网络(Neural Network)是一种模拟人脑神经系统的计算模型。它由许多节点(神经元)和连接它们的权重组成,这些节点和权重可以学习和调整&a…...

Linux学习之awk函数
awk里边的函数分为内置函数和自定义函数。 内置函数有下边的几种: 算术函数(arithmetic) 字符串函数(string) 输入/输出函数和通用函数(input/output, and general) 自定义函数格式如下…...

Redis的数据结构到底是一种什么样的结构?
有了上一篇NoSQL的基础,我们也都知道了Redis就是一种典型的NoSql,那我们就先简简单单的介绍一下Redis: Redis是什么? Redis(Remote Dictionary Server)是一个开源的使用ANSI C语言编写的高性能键值存储系统…...

eclipse 导入项目js报错问题
eclipse 导入项目后会出现项目中的js文件报错(红叉),如下图所示,有时候报错的文件很多,需要集中处理。 解决办法: 右键项目名称》Properties》MyEclipse》JavaScript》Include Path,在右侧选择“…...

《HeadFirst设计模式(第二版)》第七章代码——外观模式
代码文件目录: Subsystem: Amplifier package Chapter7_AdapterAndFacadePattern.FacadePattern.Subsystem;/*** Author 竹心* Date 2023/8/8**///扬声器 public class Amplifier {int volume 0;//音量public void on(){System.out.println("The amplifier …...
前端杂项-个人总结八股文的背诵方案
个人总结八股文的背诵方案 URL到显示网页的过程 浏览器解析URL,获取协议,主机名,端口号,路径等信息,并通过DNS查询将主机名转换为对应的IP地址浏览器与服务器建立TCP,进行三次握手。浏览器向服务器发送HT…...

利用 3D 地理空间数据实现Cesium的沉浸式环境
推荐:使用 NSDT场景编辑器 助你快速搭建可编辑的3D应用场景 为了将大量异构 3D 地理空间数据处理和分散到各行各业的地理空间应用程序和运行时引擎,Cesium 创建了 3D Tiles,这是一种用于高效流式传输和渲染大量异构数据集的开放标准。3D Tile…...

微服务——ES实现自动补全
效果展示 在搜索框根据拼音首字母进行提示 拼音分词器 和IK中文分词器一样的用法,按照下面的顺序执行。 # 进入容器内部 docker exec -it elasticsearch /bin/bash# 在线下载并安装 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch…...
北斗+5G 织就精确定位的“天罗地网”
今年,邓中亮更忙了。 外部会议,内部讨论,课题研究,还有疫情困扰期间没能出的差铆足劲似的补上,一天里,从离开床和回到床中间的时间都被工作冠名了。 北京邮电大学教授邓中亮 忙碌的加速键在2020年按下暂停…...
Ansible Roles详解
Ansible 的角色(Roles)是一种组织和管理任务和变量的方法,可以帮助您更好地组织和重用 Ansible 代码。角色是一个可重用的、自包含的 Ansible 单元,它封装了一组任务和变量,可以在不同的剧本中轻松地重用。 角色的目录…...

微服务学习笔记-基本概念
微服务是一种经过良好架构设计的分布式架构方案。根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。 微服务的架构特征: 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力&…...
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...

Python环境安装与虚拟环境配置详解
本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南,适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者,都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)
注:文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件:STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...

python可视化:俄乌战争时间线关键节点与深层原因
俄乌战争时间线可视化分析:关键节点与深层原因 俄乌战争是21世纪欧洲最具影响力的地缘政治冲突之一,自2022年2月爆发以来已持续超过3年。 本文将通过Python可视化工具,系统分析这场战争的时间线、关键节点及其背后的深层原因,全面…...

react更新页面数据,操作页面,双向数据绑定
// 路由不是组件的直接跳转use client,useEffect,useRouter,需3个结合, use client表示客户端 use client; import { Button,Card, Space,Tag,Table,message,Input } from antd; import { useEffect,useState } from react; impor…...
Android多媒体——音/视频数据播放(十八)
在媒体数据完成解码并准备好之后,播放流程便进入了最终的呈现阶段。为了确保音视频内容能够顺利输出,系统需要首先对相应的播放设备进行初始化。只有在设备初始化成功后,才能真正开始音视频的同步渲染与播放。这一过程不仅影响播放的启动速度,也直接关系到播放的稳定性和用…...

Git 使用大全:从入门到精通
Git 是目前最流行的分布式版本控制系统,被广泛应用于软件开发中。本文将全面介绍 Git 的各种功能和使用方法,包含大量代码示例和实践建议。 文章目录 Git 基础概念版本控制系统Git 的特点Git 的三个区域Git 文件状态 Git 安装与配置安装 GitLinuxmacOSWi…...
交易系统开发:跨境资本的高速通道架构解密
连接纽约、香港与内陆的金融管道工程 总收益互换(TRS)在港美股投资中扮演着跨境资本流动的“隐形桥梁”。本文基于真实跨境券商系统开发实践,深入解析支持多市场、多币种、多通道的TRS平台架构设计与业务解决方案。 一、港美股TRS的核心价值&…...
山东大学深度学习2025年期末考试
一、名词解释(24) 1.反向传播 2.激活函数 3.梯度裁剪 4.数据增强 5.迁移学习 6.过拟合 7.word2Vec 8.注意力机制 二、简答题(48) 1.池化的概念(作用)以及常见的两种池化操作 2.LSTM为什么能解决…...
0x-2-Oracle Linux 9上安装JDK配置环境变量
一、JDK选择和使用 安装完Oracle Linux9.6,同时使用rpm包安装Oracle 23 ai free后, 将面临sqlcl程序无法使用和java无法使用,需要相应进行变量配置问题。 1、java 环境运行不存在,Oracle 23ai free安装后默认安装JDK 11 /opt/…...