当前位置: 首页 > news >正文

Git的简介

文章目录

    • 一.Git是什么
    • 二.核心概念
    • 三.工作流程
    • 四.Git的优势

下载Git 推荐官网下载
官网地址

一.Git是什么

Git是一个分布式版本控制系统,用于跟踪文件的变化并协调多人对同一项目的开发工作。它就像是一个时光机器,能够记录文件在不同时间点的状态,让开发者可以回溯文件的历史版本,比较不同版本之间的差异,以及轻松地恢复到之前的某个状态。

二.核心概念

  1. 仓库(Repository)
    • 仓库是Git用于存储项目文件及其版本历史的地方。可以把它想象成一个装满了文件各个版本的箱子。仓库分为本地仓库(存在于开发者自己的计算机上)和远程仓库(通常存储在服务器上,如GitHub、GitLab等平台)。
    • 例如,在开发一个软件项目时,本地仓库用于开发者在自己的电脑上进行代码的编写、修改和版本控制。而远程仓库则用于团队成员之间共享代码,方便多人协作开发。
  2. 提交(Commit)
    • 提交是Git中保存文件版本的操作。当开发者对文件进行了一系列的修改,并且这些修改达到了一个相对完整的阶段(比如完成了一个功能或者修复了一个bug),就可以将这些修改作为一个提交保存到仓库中。
    • 每个提交都有一个唯一的标识符(SHA - 1哈希值),并且包含了提交的作者、日期、提交说明等信息。例如,一个提交说明可能是“实现用户登录功能”,这样其他开发者在查看版本历史时就能清楚地知道这个提交的目的。
  3. 分支(Branch)
    • 分支是仓库中独立的开发线。可以基于现有的分支创建新的分支,在新分支上进行开发而不影响其他分支。这就好比是在一条主道路上开辟出的小岔路,开发者可以在岔路上进行实验性的开发或者开发新的功能。
    • 例如,在开发一个网站时,有一个主分支(mastermain)用于保存稳定的、可以发布的代码。同时,可以创建一个feature - login分支用于开发用户登录功能,一个bug - fix - navbar分支用于修复导航栏的问题等。
  4. 合并(Merge)和变基(Rebase)
    • 当在不同分支上完成开发后,需要将这些分支的修改合并到主分支或者其他分支上。合并是将两个分支的修改整合到一起的操作。变基则是一种修改提交历史的方式,它可以让提交历史看起来更加线性。
    • 例如,在feature - login分支完成用户登录功能开发后,可以将这个分支合并到master分支,使master分支包含登录功能的更新。变基操作通常用于整理提交历史,比如将多个小的提交合并为一个更有意义的提交,或者将分支的提交移动到主分支提交的后面,使提交历史更加清晰。

三.工作流程

  1. 初始化仓库
    • 可以使用git init命令在本地创建一个新的Git仓库,或者使用git clone命令从远程仓库克隆一个副本到本地。例如,在一个新的项目文件夹中执行git init,就会在这个文件夹中创建一个隐藏的.git文件夹,它包含了仓库的所有版本控制信息。
  2. 修改文件和暂存(Staging)
    • 开发者对文件进行修改后,使用git add命令将修改后的文件添加到暂存区。暂存区就像是一个准备提交的区域,它可以让开发者选择哪些修改要包含在下次提交中。例如,修改了一个代码文件和一个配置文件后,可以使用git add.将当前目录下的所有修改添加到暂存区。
  3. 提交(Commit)
    • 使用git commit命令将暂存区的文件提交到本地仓库。在提交时,需要提供一个提交说明来描述这次提交的内容。例如,git commit -m "优化数据库查询性能"会将暂存区的文件作为一个新的提交保存到本地仓库,并附上提交说明。
  4. 推送(Push)和拉取(Pull)
    • 为了与团队成员协作,需要将本地仓库的提交推送到远程仓库(使用git push命令),也需要从远程仓库获取其他成员的提交(使用git pullgit fetch命令)。例如,在完成一个功能的开发并提交到本地仓库后,使用git push origin feature - loginfeature - login分支的提交推送到远程仓库的feature - login分支。

四.Git的优势

  1. 分布式协作
    • 每个开发者都拥有整个项目仓库的完整副本,包括所有的版本历史。这使得开发者即使在没有网络连接的情况下也能继续工作,并且可以方便地与其他开发者共享代码。例如,在一个跨国团队中,不同地区的开发者可以各自在本地仓库进行开发,然后定期将自己的修改推送到远程仓库与其他成员共享。
  2. 版本控制和历史记录
    • Git能够详细地记录文件的版本变化,这对于追踪问题、查看功能的开发过程以及回滚到之前的版本非常有用。例如,当发现新上线的功能导致了系统故障时,可以通过Git的版本历史快速定位到引入问题的提交,并将项目回滚到之前稳定的版本。
  3. 分支管理
    • 灵活的分支管理功能允许开发者同时进行多个功能的开发、实验新的想法,并且可以轻松地合并或放弃这些分支。这有助于提高开发效率,降低开发过程中的风险。例如,在开发一个大型软件时,可以通过创建多个分支来并行开发不同的模块,最后将这些分支的成果合并到主分支中。

相关文章:

Git的简介

文章目录 一.Git是什么二.核心概念三.工作流程四.Git的优势 下载Git 推荐官网下载 官网地址 一.Git是什么 Git是一个分布式版本控制系统,用于跟踪文件的变化并协调多人对同一项目的开发工作。它就像是一个时光机器,能够记录文件在不同时间点的状态&…...

麒麟操作系统服务架构保姆级教程(四)NGINX中间件

如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 想要在网页上访问到代码那么就需要用到应用服务类中间件,国外的有Nginx,Tomcat等,国内的有金蝶web,东方通的服务中间件(Tongweb&#xff0…...

Glide 自定义圆角、铺满FitXY

在 Android 开发中,使用 Glide 来加载图片时,有时需要对图片进行特定的处理,比如设置圆角或者使图片完全填充到一个视图中(类似于 ImageView 的 scaleType 中的 FitXY)。以下是如何使用 Glide 来实现这些自定义需求的处…...

蓝牙协议——音乐启停控制

手机播放音乐 手机暂停音乐 耳机播放音乐 耳机暂停音乐...

Krita安装krita-ai-diffusion工具搭建comfyui报错没有ComfyUI_IPAdapter_plus解决办法

我们在使用Kirta安装krita-ai-diffusion工具之后搭建comfyui环境需要安装很多扩展文件。 一般正常安装都可以使用了。 但是有一个插件很特别,无论你安装多少遍都会显示缺失,是什么插件这么难搞定呢? 没错,就是我们的ComfyUI_IPAdapter_plus插件。 就像下图一样: 那么怎…...

四相机设计实现全向视觉感知的开源空中机器人无人机

开源空中机器人 基于深度学习的OmniNxt全向视觉算法OAK-4p-New 全景硬件同步相机 机器人的纯视觉避障定位建图一直是个难题: 系统实现复杂 纯视觉稳定性不高 很难选到实用的视觉传感器 为此多数厂家还是采用激光雷达的定位方案。 OAK-4p-New 为了弥合这一差距…...

LightGBM分类算法在医疗数据挖掘中的深度探索与应用创新(上)

一、引言 1.1 医疗数据挖掘的重要性与挑战 在当今数字化医疗时代,医疗数据呈爆炸式增长,这些数据蕴含着丰富的信息,对医疗决策具有极为重要的意义。通过对医疗数据的深入挖掘,可以发现潜在的疾病模式、治疗效果关联以及患者的健康风险因素,从而为精准医疗、个性化治疗方…...

JVM(Java虚拟机)的组成部分详解

摘要: JVM (Java Virtual Machine) 是一个抽象计算模型,它使Java程序可以在任何支持JVM的操作系统上运行,而无需考虑底层硬件架构。本文将深入探讨JVM的内部结构和工作机制,包括类加载器、运行时数据区、执行引擎以及内存管理等关…...

jsp中的四个域对象(Spring MVC)

在Spring MVC中,Model中的数据会被自动放入到请求域(Request Scope)中。也就是说,当我们在控制器中使用model.addAttribute()时,这些属性会被放入到HttpServletRequest对象的属性中。 让我们通过代码来详细解释&#…...

计算机基础知识复习12.24

http和https有那些区别 http是超文本传输协议,信息是明文传输,存在安全风险的问题,https则解决http不安全的缺点,在TCP和HTTP网络层之间加入了SSL/TLS安全协议,使得报文能够加密传输 http连接建立相对简单&#xff0…...

如何使用vscode解决git冲突

在使用VSCode时,遇到Git冲突是很常见的情况。Git冲突是指当多个人同时修改同一个文件的同一行或相邻行时,Git无法自动决定应该保留哪一个修改,需要手动解决这个冲突。 要解决Git冲突,可以按照以下步骤操作: 1. 打开V…...

告别卡顿:CasaOS轻NAS设备安装Gopeed打造高效下载环境

文章目录 前言1. 更新应用中心2.Gopeed安装与配置3. 本地下载测试4. 安装内网穿透工具5. 配置公网地址6. 配置固定公网地址 前言 无论你是需要大量文件传输的专业人士,还是只是想快速下载电影或音乐的普通用户,都会使用到下载工具。如果你对现有的下载工…...

Java 重写(Override)与重载(Overload)

重写 (Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。…...

HDFS与HBase有什么关系?

1 、 HDFS 文件存储系统和 HBase 分布式数据库 HDFS 是 Hadoop 分布式文件系统。 HBase 的数据通常存储在 HDFS 上。 HDFS 为 HBase 提供了高可靠性的底层存储支持。 Hbase 是 Hadoop database ,即 Hadoop 数据库。它是一个适合于非结构化数据存储的数据库, HBase 基于列的…...

CentOS7下的vsftpd服务器和客户端

目录 1、安装vsftpd服务器和ftp客户端; 2、配置vsftpd服务器,允许普通用户登录、下载、上传文件; 3、配置vsftpd服务器,允许anonymous用户登录、下载、上传文件; 4、配置vsftpd服务器,允许root用户登录…...

全网最详细Gradio教程系列10——Blocks:底层区块类(下)

全网最详细Gradio教程系列10——Blocks:底层区块类(下) 前言本篇摘要10. Blocks:底层区块类10.4 Blocks Layout:布局10.4.1 行与列1. Rows2. Columns 10.4.2 选项卡和折叠类10.4.3 重渲染.render()10.4.4 Group分组10.…...

嵌入式设备常用性能和内存调试指令

文章目录 嵌入式设备常用性能和内存调试指令内存问题分析性能测试android设备通过NDK 使用SimplePerf 抓取火焰图嵌入式linux抓取特定进程的perf火焰图 杂记 嵌入式设备常用性能和内存调试指令 内存问题分析 安装valgrind,按照如下指令执行应用程序: …...

数据库系统原理:数据恢复与备份策略

3.1可行性分析 开发者在进行开发系统之前,都需要进行可行性分析,保证该系统能够被成功开发出来。 3.1.1技术可行性 开发该《数据库系统原理》课程平台所采用的技术是vue和MYSQL数据库。计算机专业的学生在学校期间已经比较系统的学习了很多编程方面的知识…...

C++软件设计模式之装饰器模式

装饰器模式(Decorator Pattern)是C软件设计模式中的一种结构型设计模式,主要用于解决在不改变现有对象结构的情况下动态地给对象添加新功能的问题。通过使用装饰器模式,可以在运行时为对象添加新的行为,而不需要修改其…...

fpga系列 HDL:Quartus II PLL (Phase-Locked Loop) IP核 (Quartus II 18.0)

在 Quartus II 中使用 PLL (Phase-Locked Loop) 模块来将输入时钟分频或倍频,并生成多个相位偏移或频率不同的时钟信号: 1. 生成 PLL 模块 在 Quartus II 中: 打开 IP Components。 file:///C:/intelFPGA_lite/18.0/quartus/common/help/w…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...

Vue3 PC端 UI组件库我更推荐Naive UI

一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用,前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率,还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库(Naive UI、Element …...

6.计算机网络核心知识点精要手册

计算机网络核心知识点精要手册 1.协议基础篇 网络协议三要素 语法:数据与控制信息的结构或格式,如同语言中的语法规则语义:控制信息的具体含义和响应方式,规定通信双方"说什么"同步:事件执行的顺序与时序…...