当前位置: 首页 > 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是一个分布式版本控制系统,用于跟踪文件的变化并协调多人对同一项目的开发工作。它就像是一个时光机器,能够记录文件在不同时间点的状态&…...

【XR】ATW

异步时间扭曲(Asynchronous Timewarp,简称ATW)是一种在虚拟现实(VR)技术中使用的算法,它通过生成中间帧来减少因帧率不足导致的抖动和延迟,从而提高用户体验。ATW技术在两个线程中完成时间扭曲的…...

记Fastjson2的一个报ConcurrentModificationException的bug

错误背景:fastjson2的parseObject方法,在spring webflux项目中被调用,有时会报java.util.ConcurrentModificationException错误。报错处的代码如下图: 改了半天与并发安全相关的代码,还是会报此错误。后来改变思路搜…...

JAVAweb学习日记(二)JavaScript

一、概念 二、JavaScript引入方式 三、JavaScript书写语法 输出语句: 变量: 数据类型、运算符、流程控制语句: 数据类型: 运算符: 字符串如果是 数字字符构成,先把读到的数字转为数字类型,后续…...

FPGA学习(基于小梅哥Xilinx FPGA)学习笔记

文章目录 一、整个工程的流程二、基于Vivado的FPGA开发流程实践(二选一多路器)什么是二选一多路器用verilog语言,Vivado软件进行该电路实现1、设计输入:Design Sources中的代码2、分析和综合:分析设计输入中是否有错误…...

Linux的VIM基本操作

编辑模式转换 编辑指令 linux用vim编辑代码,再用gcc进行编译 编辑命令如下 gcc编译如下...

2024年12月英语六级CET6写作与翻译笔记

目录 1 写作 1.1 大学为学生提供了探索各种可能性 1.2 自律在个人成长中的重要性 1.3 切实可行的目标 2 翻译 2.1 洋山港(Yangshan Port) 2.2 中国航天事业 2.3 北斗卫星导航系统 1 写作 1.1 大学为学生提供了探索各种可能性 1.2 自律在个人成长中的重要性 1.3 切实可…...

学习记录:electron主进程与渲染进程直接的通信示例【开箱即用】

electron主进程与渲染进程直接的通信示例 1. 背景: electronvue实现桌面应用开发 2.异步模式 2.1使用.send 和.on的方式 preload.js中代码示例: const { contextBridge, ipcRenderer} require(electron);// 暴露通信接口 contextBridge.exposeInMa…...

领域自适应

领域自适应(Domain Adaptation)是一种技术,用于将机器学习模型从一个数据分布(源域)迁移到另一个数据分布(目标域)。这在源数据和目标数据具有不同特征分布但任务相同的情况下特别有用。领域自适…...

Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)

KubeadmContainerd部署k8s(v1.28.2)集群(非高可用版) 文章目录 KubeadmContainerd部署k8s(v1.28.2)集群(非高可用版)一.环境准备1.服务器准备2.环境配置3.设置主机名4.修改国内镜像源地址5.配置时间同步6.配置内核转发及网桥过滤 …...

重温设计模式--职责链模式

文章目录 职责链模式的详细介绍C 代码示例C示例代码2 职责链模式的详细介绍 定义与概念 职责链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它旨在将请求的发送者和多个接收者解耦,让多个对象都有机会处理请求&a…...

单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号

一,简介 一般来说,公司有很多系统使用,为了实现统一的用户名管理和登录所有系统(如 GitLab、Harbor 等),并在员工离职时只需删除一个主账号即可实现权限清除,可以采用 单点登录 (SSO) 和 集中式…...

【Rust自学】5.1. 定义并实例化struct

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 5.1.1. 什么是struct struct的中文意思为结构体,它是一种自定义的数据类型,它允许程序为相关联的值命名和打包&am…...

vue-cli 5接入模块联邦 module federation

vue-cli 5接入模块联邦 module federation 模块联邦概念实现思路配置遇到的问题: 模块联邦概念 模块联邦由webpack 5最先推出的,让应用加载远程的代码模块来实现不同的Web应用共享代码片段.模块联邦分为两个角色,一个是生产者,一个是消费者.生产者暴露代码供消费者消费 (用一个…...

[前端]mac安装nvm(node.js)多版本管理

NVM功能简介 NVM(Node Version Manager)是一个用于管理多个Node.js版本的命令行工具,它允许开发者在同一台机器上安装、切换和卸载不同版本的Node.js,从而解决版本不兼容的问题。以下是NVM的一些主要功能和用途: 安装和…...

thinkphp8+layui分页

前端 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>demo</title><link href"//unpkg.com/layui2.9.20/dist/css/layui.css" rel"stylesheet"> </head> <…...

【NLP高频面题 - Transformer篇】Transformer的位置编码是如何计算的?

【NLP高频面题 - Transformer篇】Transformer的位置编码是如何计算的&#xff1f; 重要性&#xff1a;★★★ NLP Github 项目&#xff1a; NLP 项目实践&#xff1a;fasterai/nlp-project-practice 介绍&#xff1a;该仓库围绕着 NLP 任务模型的设计、训练、优化、部署和应用…...

VSCode搭建Java开发环境 2024保姆级安装教程(Java环境搭建+VSCode安装+运行测试+背景图设置)

名人说&#xff1a;一点浩然气&#xff0c;千里快哉风。—— 苏轼《水调歌头》 创作者&#xff1a;Code_流苏(CSDN) 目录 一、Java开发环境搭建二、VScode下载及安装三、VSCode配置Java环境四、运行测试五、背景图设置 很高兴你打开了这篇博客&#xff0c;更多详细的安装教程&…...

计算机网络压缩版

计算机网络到现在零零散散也算过了三遍&#xff0c;一些协议大概了解&#xff0c;但总是模模糊糊的印象&#xff0c;现在把自己的整体认识总结一下&#xff0c;&#xff08;本来想去起名叫《看这一篇就够了》&#xff0c;但是发现网上好的文章太多了&#xff0c;还是看这篇吧&a…...

大语言模型中的Agent;常见的Agent开发工具或框架

大语言模型中的Agent 大语言模型中的Agent是指以大语言模型为核心驱动,具有自主理解、感知、规划、记忆和使用工具等能力,能够自动化执行复杂任务的系统.以下是一些例子: AutoGPT:它相当于一个完整的工具包,可以为各种项目构建和运行自定义AI Agent。使用OpenAI的GPT-4和…...

设计模式-备忘录模式

背景 游戏角色恢复问题&#xff1a;角色有攻击力和防御力&#xff0c;在Boss站前保存攻击力和防御力&#xff0c;大战之后&#xff0c;攻击力和防御力下降&#xff0c;从备忘录恢复到大战前的状态。 传统思路&#xff1a; 一个游戏对象&#xff0c;对应一个保存状态对象。 …...

重温设计模式--状态模式

文章目录 状态模式&#xff08;State Pattern&#xff09;概述状态模式UML图作用&#xff1a;状态模式的结构环境&#xff08;Context&#xff09;类&#xff1a;抽象状态&#xff08;State&#xff09;类&#xff1a;具体状态&#xff08;Concrete State&#xff09;类&#x…...

道可云人工智能元宇宙每日资讯|2024(GIAC)智能视听大会在青岛举行

道可云元宇宙每日简报&#xff08;2024年12月23日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 2024&#xff08;GIAC&#xff09;智能视听大会在青岛举行 12月22日&#xff0c;2024&#xff08;GIAC&#xff09;智能视听大会在青岛举行。大会以“数字文化 智能…...

理解神经网络

神经网络是一种模拟人类大脑工作方式的计算模型&#xff0c;是深度学习和机器学习领域的基础。 基本原理 神经网络的基本原理是模拟人脑神经系统的功能&#xff0c;通过多个节点&#xff08;也叫神经元&#xff09;的连接和计算&#xff0c;实现非线性模型的组合和输出。每个…...

初学stm32 --- NVIC中断

目录 STM32 NVIC 中断优先级管理 NVIC_Type: ISER[8]&#xff1a; ICER[8]&#xff1a; ISPR[8]&#xff1a; ICPR[8]&#xff1a; IABR[8]&#xff1a; IP[240]&#xff1a; STM32 的中断分组&#xff1a; 中断优先级分组函数 NVIC_PriorityGroupConfig 中断初始化函…...

机器人角度参考方式

机器人的角度可以根据需求和系统设计来决定。通常情况下&#xff0c;机器人角度&#xff08;如航向角或偏航角&#xff09;有两种常见的参考方式&#xff1a; 参考开机时的 0&#xff1a;这是最常见的方式&#xff0c;机器人在开机时会将当前的方向作为 0&#xff08;即参考方向…...

不同路径

不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff…...

WPS工具栏灰色怎么办

WPS离线不登录&#xff0c;开启工具栏等相关功能 当你在使用WPS的过程中&#xff0c;若因网络问题或其他特殊原因&#xff0c;导致无法登录使用WPS时&#xff0c;可根据以下步骤开启离线兼容模式&#xff0c;开启此模式后&#xff0c;可在未登录的状态下&#xff0c;激活并使用…...

js的节流与防抖方法封装

简介 节流&#xff08;Throttling&#xff09;和 防抖&#xff08;Debouncing&#xff09; 是防止频繁触发函数执行的两种技术&#xff0c;它们的目标都是减少函数的执行次数。 区别 防抖&#xff08;Debouncing&#xff09; &#xff1a;当用户停止触发事件后&#xff0c;经…...

深信服企业级数据备份与恢复系统(整机裸机恢复)

概述 深信服企业级数据备份与恢复系统可实现无需搭建目标环境&#xff0c;目标机可以是没有操作系统的物理主机或虚拟机&#xff0c;实现异构环境下的裸机恢复。 深信服企业级数据备份与恢复系统支持的多种连接恢复方式&#xff1a; 1. PXE连接恢复&#xff1a;PXE连接需要做…...

uniapp 微信小程序 页面部分截图实现

uniapp 微信小程序 页面部分截图实现 ​ 原理都是将页面元素画成canvas 然后将canvas转化为图片&#xff0c;问题是我页面里边本来就有一个canvas&#xff0c;ucharts图画的canvas我无法画出这块。 ​ 想了一晚上&#xff0c;既然canvas最后能转化为图片&#xff0c;那我直接…...

Sequelize ORM sql 语句工具

Sequelize ORM sql 语句工具 sequelize orm中文网 视频学习长乐未央 初始化配置 Sequelize orm 配置文章落日沉溺于海 在命令行中全局安装 npm i -g sequelize-clisequelize 执行需要匹配 mysql2 对应的依赖&#xff08;安装 mysql2&#xff09; npm i sequelize mysql2初始化…...

搭建Nacos注册中心

Nacos介绍 目前开源的注册中心框架有很多&#xff0c;国内比较常见的有&#xff1a; Eureka&#xff1a;Netflix公司出品&#xff0c;目前被集成在SpringCloud当中&#xff0c;一般用于Java应用 Nacos&#xff1a;Alibaba公司出品&#xff0c;目前被集成在SpringCloudAlibaba中…...

Linux 下SVN新手操作手册

下面来介绍Linux 下 SVN操作方法&#xff1a; 1、SVN的安装 Centos 7 安装Subversion sudo yum -y install subversion Ubuntu 安装Subversion sudo apt-get install subversion 自定义安装&#xff0c;官方地址&#xff1a;https://subversion.apache.org/ 2、SVN的使用…...

解释下什么是面向对象?面向对象和面向过程的区别?

看着很基础是吧&#xff0c;你还真不一定会 4-Java 中创建对象的几种方式&#xff1f; 1、使用new关键字&#xff0c;最常见的创建方式&#xff0c;通过调用类的构造方法&#xff08;构造器&#xff09;来创建对象。 2、使用反射&#xff0c;通过java的反射API可以动态的创建对…...

【CDN】快速了解CDN是什么?以及工作原理和应用场景

快速了解CDN是什么&#xff1f;以及工作原理和应用场景 一、什么是CDN&#xff1f;CDN相关的术语解释 二、CDN工作原理三、CDN与传统网站的区别四、CDN的作用和意义五、CDN的应用场景 一、什么是CDN&#xff1f; CDN英文全称Content Delivery Network&#xff0c;中文翻译即为内…...

【计算机视觉基础CV-图像分类】05 - 深入解析ResNet与GoogLeNet:从基础理论到实际应用

引言 在上一篇文章中&#xff0c;我们详细介绍了ResNet与GoogLeNet的网络结构、设计理念及其在图像分类中的应用。本文将继续深入探讨如何在实际项目中应用这些模型&#xff0c;特别是如何保存训练好的模型、加载模型以及使用模型进行新图像的预测。通过这些步骤&#xff0c;读…...

WPF+MVVM案例实战与特效(四十五)- 打造优雅交互:ListBox 的高级定制与行为触发(侧边菜单交互面板)

文章目录 1、引言2、案例效果3、案例实现1、依赖安装2、文件创建3、代码实现1、依赖引用与上下文2、个性化视觉效果:自定义 ItemContainerStyle3、页面样式与布局完整代码4、ViewModel 逻辑实现5、子界面代码:3、实现效果4、源代码获取5、总结1、引言 在WPF应用程序开发中,…...

Git进阶:本地或远程仓库如何回滚到之前的某个commit

在Git的使用过程中&#xff0c;我们经常会遇到需要回滚到之前某个commit的情况。无论是为了修复错误、撤销更改&#xff0c;还是为了重新组织代码&#xff0c;回滚到特定commit都是一个非常有用的技能。本文将介绍几种常用的回滚方法&#xff0c;帮助读者更好地掌握Git版本控制…...

Django 后端数据传给前端

Step 1 创建一个数据库 Step 2 在Django中点击数据库连接 Step 3 连接成功 Step 4 settings中找DATABASES Step 5 将数据库挂上面 将数据库引擎和数据库名改成自己的 Step 6 在_init_.py中加上数据库的支持语句 import pymysql pymysql.install_as_MySQLdb()Step7 简单创建两列…...

Docker 技术系列之安装多版本Mysql5.6和Mysql5.7

image 大家好&#xff0c;后面的就不是关于MAC专有的内容&#xff0c;基本是跟Java环境&#xff0c;基础技术方面有关。所以这个教程对于在linux系统还是macOS都是通用的&#xff0c;不用担心。 上一篇&#xff0c;我们安装好对应的Docker之后&#xff0c;感受到了它的便利。接…...

C# 范围判断函数

封装范围函数 public static class CommonUtil {/// <summary>/// 范围判断函数&#xff0c;检查给定的值是否在指定的最小值和最大值之间。/// 例如&#xff0c;可以用来判断当前日期是否在开始日期和结束日期之间。/// 该方法适用于任何实现了 IComparable 接口的类型…...

技术速递|使用 Dependabot 管理 .NET SDK 更新

作者&#xff1a;Jamie Magee - 高级软件工程师 排版&#xff1a;Alan Wang 保持 .NET SDK 版本的更新对于维护安全高效的应用程序至关重要。现在 Dependabot 可以在 global.json 中更新 .NET SDK 版本&#xff0c;这使您可以比以往更轻松地确保自己的应用程序始终运行最新的安…...

笔记本通过HDMI转VGA线连接戴尔显示器,wifi不可用或网速变慢

早上开开心心的来使用我的分屏显示器&#xff0c;结果winP开拓展&#xff0c;我的wifi就断掉了&#xff0c;琢磨了好一阵我以为是wifi的问题&#xff0c;发现不进行拓展&#xff0c;网络又好了&#xff0c;一上午就研究这个了&#xff0c;说是hdmi信号干扰了wifi信号啥的额&…...

Excel中match()函数

函数功能概述 MATCH 函数是 Excel 中用于在指定区域中查找特定值的位置的函数。它返回指定数值在指定数组区域中的位置。这个位置是相对于查找区域的相对位置&#xff0c;而不是绝对的单元格位置。语法结构 MATCH(lookup_value, lookup_array, match_type)lookup_value&#xf…...

ACl访问控制列表

ACL的原理 ACL也称为访问控制列表&#xff0c;主要有包过滤的功能&#xff0c;同时也是包过滤防火前的本质 其方式主要是定立规则&#xff0c;这些规则控制着数据包的允许或者通过 ACL的场景 如下图&#xff0c;在全网互通的情况下&#xff0c;控制特定的数据包走向 例如控…...

android 用户空间切换流程

在Android开发中,创建和切换用户是一个重要的功能,特别是在需要多用户支持的应用中,下面讲述一下用户切换的流程。 一、CarUserManager.java 准备创建新用户,可以减少真正创建用户的时间 @RequiresPermission(anyOf = {Manifest.permission.MANAGE_USERS,Manifest.permis…...

突破续航瓶颈:数字样机技术引领新能源汽车复合制动新方向

随着我国经济快速发展和人民生活水平不断提升&#xff0c;汽车保有量截至2023年9月底就已达到了3.3亿&#xff0c;同比增长6.32%。庞大的汽车保有量对我国的环境和能源都产生了巨大的压力&#xff0c;具备节能环保优势的新能源汽车对于有效解决环境恶化和能源危机问题具有重要意…...

51单片机仿真摇号抽奖机源程序 12864液晶显示

资料下载地址&#xff1a;51单片机仿真摇号抽奖机源程序12864液晶显示仿真程序 一、功能介绍 单片机连接12864&#xff08;st7920&#xff09;液晶显示器和1个按键接INT0&#xff0c;模拟一个抽奖机。 实现效果&#xff1a; 1、液晶初始显示“祝你好运&#xff01;”&#xff…...

路由器的原理

✍作者&#xff1a;柒烨带你飞 &#x1f4aa;格言&#xff1a;生活的情况越艰难&#xff0c;我越感到自己更坚强&#xff1b;我这个人走得很慢&#xff0c;但我从不后退。 &#x1f4dc;系列专栏&#xff1a;网路安全入门系列 目录 路由器的原理一&#xff0c;路由器基础及相关…...