【Git版本控制器--1】Git的基本操作--本地仓库
目录
初识git
本地仓库
认识工作区、暂存区、版本库
add操作与commit操作
master文件与commit id
修改文件
版本回退
撤销修改
删除文件
初识git
Git 是一个分布式版本控制系统,主要用于跟踪文件的更改,特别是在软件开发中。
为什么要版本控制?
需求:假设你的导师让你为一件产品写出一份文档。
当你写完以后,你拿给你的导师,你的导师并不满意,让你拿回去进行修改。此时你不进行版本控制,直接在原文档上进行修改,最终你改完以后又拿给你的导师,你的导师还是不满意。以此往复,你对原文档进行了10多次的修改,而此时你的导师又改主意了,让你拿出第一次修改后的文档,你该怎么办呢?
若是不进行版本控制,那么上述问题是无解的,因为你是直接对原文档进行的修改!
所谓的版本控制,就是让你有方式对自己修改的每一份代码都有备份!版本控制器的核心功能就是对这些备份进行管理。
版本控制器的本质就是记录每次的修改以及版本迭代的一个管理系统
git是目前最主流的版本控制器!git可以控制电脑上所有格式的文档。对于开发人员来说,git最主要的作用是可以用来管理源代码文件
- 对于文本文件来说,文件每一次上传到git,git都会记录你本次修改的内容,如:第二行新增了xxx
- 对于二进制文件来说,git并不会记录它修改的内容,只会记录文件大小的变化
本地仓库
为什么要有本地仓库?
git是用于管理我们的文件的一个版本控制器,如果文件被分散在电脑的各个角落,git是无法进行管理的,所以git管理文件要求我们的文件必须是放在git仓库中的
如何创建本地仓库
第一步:需要创建一个目录
第二步 :在创建好的目录中使用如下指令
git init
输入完上述指令以后,会发现我们的目录下多了一个.git文件
这个文件是.git文件是git提供用于追踪并管理我们仓库的文件,一般来说不要手动修改.git中的内容
如何配置本地仓库?
配置本地仓库时,最主要配置的两个信息:
- name
若不配置上述两个信息,git会报错
配置用户名称:
git config user.name "[用户名称]"
例如:
[yyf@VM-24-5-centos gitcode]$ git config user.name "yyf"
配置email邮箱地址:
git config user.email "[邮箱地址]"
例如:
[yyf@VM-24-5-centos gitcode]$ git config user.email "123123@qq.com"
查看配置信息:
git config -l
删除配置信息:
git config --unset [键值]
键值:user.name、user.email都是键值,查看配置信息时"="左边的都是键值
例如:
一个主机当中,可以存在很多个本地仓库。并且我们可以一次设置所有本地仓库的配置信息
设置全局配置信息:
git config --global [配置键值] "[配置值]"
例如:
git config --global user.email "123123123@qq.com"
删除全局配置信息:
git config --global --unset [配置键值]
认识工作区、暂存区、版本库
如图,在包含.git文件的gitcode目录下我创建了一个ReadMe文件
但实际上这个文件并不能被git管理。这是因为gitcode文件并不是真实的git仓库。
真正的git仓库是.git文件
.git文件又被称为版本库/仓库!
虽然.git是仓库,但不能直接手动修改.git中的内容,这是不被允许的!
由于.git不能直接被修改,所以一般我们把要被管理的文件放在包含.git文件的目录下(图上gitcode)。而这个目录我们又称之为工作区!
注意:.git文件虽然是在工作区目录下,但.git文件不属于工作区
如何把工作区文件放到版本库中,使git能管理该文件?
- stage我们称之为暂存区/索引
- 图中其他概念,后面会阐述
- 如图所示,把工作区的所有修改内容添加到版本库中,是通过add操作实现的
- 修改内容:在工作区中创建文件、修改工作区的文件、在工作区的删除操作
- 注意:add操作是把工作区的内容放入到版本库的暂存区当中
- 把暂存区的内容放入到master中,是通过commit操作实现的!
- 当工作区的修改内容被commit到master以后,才真正意味着该内容被添加进了版本库中!
git的版本控制如何体现?
版本库中除了暂存区与master以外还会存在一个objects,即对象区
而我们每次在工作区中add一个修改内容时,都会新增一个修改内容的git对象,该对象会被维护到objects中
所以我们每次修改工作区的内容并生成一个新的git对象被维护到objects对象区中时,就相当于我们维护了一个版本!
暂存区和对象区之间的关系:
- objects对象区是实际存储修改内容对象的地方!
- stage暂存区是存储对象区的索引,所以一般来说stage都是较为轻量级的
commit操作做了什么?
- commit操作实际上就是把暂存区中的索引树,放入到master区
- 所以master区中存储的也是对象在对象区的索引,master区也是较为轻量级的
HEAD是一个指针,它指向了master区,我们只要拿到HEAD指针就能拿到master的那棵索引数
注意:有了HEAD指针就能找到master指针,所以版本库中并没有master区
add操作与commit操作
add/commit...操作对应的Linux命令
add操作:git add [file1] [file2] ...
commit操作:git commit -m "message" (message:本次提交的描述信息!)
如下:
我们在commit时,可以看到git的管理信息,即一个文件被改变,增加了1行
获取工作区的所有的提交记录:
git log
- commit:即commit id,每一次提交时生成git对象的commit id都不同,它是通过某种哈希算法得到的!
- Author:表示提交的人是谁,我们之前配置的name和email都会显示在这
- Date:提交日期
若上述的获取提交记录的方法,你觉得内容太多不好筛选,那么可以带上如下选项:
git log --pretty=oneline
带上选项以后,只打印commit id和描述信息!
master文件与commit id
之前说过HEAD指针是指向master的,所以HEAD中保存了master的地址
我们会发现master文件中存储的实际上就是最近一次提交的commit id
之前说过commit id可以标识git对象,若我们拿着这个commit id那么就能到objects对象区中找到该对象!
找之前我们得先把commit id分为两个部分,最开始得两位数表示得是文件夹的名称,而其他位数表示的是文件的名称
如何查看git对象的内容
查看git对象的内容:
git cat-file -p [commid id]
输入上述查看git对象后,我们能看到的内容:
- parent:表示上一次提交时的commit id
- tree:Git 中的一个基本对象,表示某个特定目录的结构。它包含了文件和子目录的信息。通过tree的commit id我们能查看到修改后的文件内容
修改文件
git追踪管理的其实是修改,而不是文件!
通过如下指令,可以查看是否有对暂存区的修改
git status
可以看到,若我仅仅是对工作区内容进行了修改,那么它会提示暂存区中的数据没有被修改!并且也会提示被修改的文件是在工作区被修改的,即modified:ReadMe(工作区中的ReadMe文件被修改)
status仅仅能表示该文件内容是否被修改,但不清楚具体修改了什么内容
Linux中可以查看暂存区和工作区之间内容的差异:
git diff [文件名]
版本回退
什么是版本回退?
Git版本回退是指在Git版本控制系统中,将代码库的状态恢复到先前的某个提交。这个操作通常用于撤销不想要的更改、修复错误或查看历史版本。
例如:
我们git在提交version0版本时,只有一行hello,world。
之后的version1版本,我们添加了一行hello,git。此时version1中有两行的内容
通过版本回退我们能拿到version0,即只有一行hello,world时的样子
如何版本回退?
Git版本回退我们采用如下指令:
git reset [选项] [commit id]
reset进行版本回退时,本质是回退版本库中的内容
若需要回退工作区以及暂存区的内容,那么需要我们为上述指令添加上选项
reset一共有三个选项:
- --soft
- --mixed
- --hard
若我们reset时选择--soft选项,那么版本回退只回退的是版本库中的内容,对于工作区以及暂存区是不进行回退的
若我们reset时选择--mixed选项,那么版本回退时既回退版本库中的内容,还会回退暂存区的内容,但工作区不会进行版本回退
若我们reset时选择--hard选项,那么版本回退时工作区、暂存区、版本库都会进行版本回退
表格示例
假设我们version0版本时,文件内容为git。version1版本时,文件内容添加了 world。那么对于该文件遵循如下表格
工作区 | 暂存区 | 版本库 | |
不进行reset | git world | git world | git world |
--soft | git world | git world | git |
--mixed | git world | git | git |
--hard | git | git | git |
版本回退时的注意事项
对于--hard选项,我们需要谨慎使用!
- --hard选项,会回退工作区的内容,这意味着,假设有人在工作区中进行开发。那么开发的代码会直接被回退掉!
版本回退演示
进行版本回退时,我们需要知道之前版本的commit id
如下图:我首先完成version0版本的提交
如下图:我完成了version1版本的提交
首先是进行版本回退之--hard的测试
如图我们会发现,testgit文件不见了,因为我们回退的版本是最先一次提交的版本,--hard选项直接把我们的工作区也回退了
如果后悔了怎么办?
只要有commit id,再次进行hard回退即可,如下:
我回退的是version1版本,此时能看到文件内容又被回退回来了!
但这种后悔药仅仅是因为我提前知道,所以提前git log获取了commit id。若我们把服务器关了,或者屏幕清了,如何能恢复呢?
使用git reflog指令可以查看到本地每一次提交时的记录
红框中的就是commit id,严格来说是commit id的一部分,但我们仍然可以使用这个commit id的一部分进行版本回退!
如下:
需要注意的是:由于实际开发中经常使用git操作,所以这些commit id不是一直保存的,系统可能会自动清理掉一些commit id,若commit id被清理,那么就没有后悔药可以吃了,所以如果发生误回退行为,请尽快操作!
原理
如图所示,版本库中的objects对象区中会管理git对象,而所谓的版本回退就是让master指针从一个git对象指向前一个git对象。整个过程只需要改变指针的指向,所以回退操作一般是非常快的
撤销修改
什么时候需要撤销修改?
如果我们在我们的工作区中写了很长时间代码,越写越写不下去,觉得自己写的实在是垃圾,想恢复到上一个版本
此时根据不同情况,我们可以采取不同的恢复策略
注意:以下聊的撤销修改指的是期望工作区、暂存区、版本库中都撤销修改!并且如下撤销都是基于没有进行push操作(推送到远程仓库)的前提下!
第一种情况:对于工作区的代码,还没有add操作
我们期待的结果是工作区的代码都进行撤销
对于这种情况,我们有三种解决方式:
- 手动修改(不推荐),容易手动改出bug
- git checkout -- [文件名]
- reset进行版本回退,之前说过不再赘述
对于git checkout --来说,就是回退到文件最近一次提交时的样子!其中"--"是非常重要的,若不带上"--"那么该指令是另外的含义!
如下示例:
第二种情况:已经进行add添加到了暂存区当中,但还没有commit
我们期待的是工作区与暂存区的代码都进行撤销
对于这种情况我们有两种解决方案:
- 使用reset带上--hard选项一步到位直接到最近一次提交的样子
- 使用reset带上--mixed选项转化为第一种情况的样子
hard我们之前已经详细使用过,接下来我们使用mixed进行回退
mixed是默认选项,不需要显示写都可以!
同时我们不需要再去找commit id了
- 若我们需要回退到当前版本,那么commit id可以替换为HEAD
- 若我们需要回退到上一个版本,那么commit id可以替换为HEAD^
- 若我们需要回退到上一个版本,那么commit id可以替换为HEAD^^
- 以此类推....
- 这种方式也适用于--hard和--soft选项
第三种情况:工作区、暂存区、版本库中都已经添加了修改内容
参考第二种情况!
删除文件
对于工作区的文件,直接使用rm指令删除即可
对于既在工作区,又在暂存区的文件,又或者在版本库中的文件,git中提供了rm方式删除文件,git中的rm和删除工作区的rm的区别在于git提供的rm既会删除工作区中该文件,又会删除暂存区中该文件,使用了git rm后,我们直接提交一次即可
如下示例:
相关文章:
【Git版本控制器--1】Git的基本操作--本地仓库
目录 初识git 本地仓库 认识工作区、暂存区、版本库 add操作与commit操作 master文件与commit id 修改文件 版本回退 撤销修改 删除文件 初识git Git 是一个分布式版本控制系统,主要用于跟踪文件的更改,特别是在软件开发中。 为什么要版本…...
如何在Jupyter中快速切换Anaconda里不同的虚拟环境
目录 介绍 操作步骤 1. 选择环境,安装内核 2. 注册内核 3. 完工。 视频教程 介绍 很多网友在使用Jupyter的时候会遇到各种各样的问题,其中一个比较麻烦的问题就是我在Anaconda有多个Python的环境里面,如何让jupyter快速切换不同的Pyt…...
Python自学 - “包”的创建与使用(从头晕到了然)
<< 返回目录 1 Python自学 - “包”的创建与使用(从头晕到了然) 相对于模块,包是一个更大的概念,按照业界的开发规范,1个代码文件不要超过1000行,稍微有点规模的任务就超过这个代码限制了,必然需要多个文件来管…...
ElasticSearch 同义词匹配
synonym.txt 电脑, 计算机, 主机 复印纸, 打印纸, A4纸, 纸, A3 平板电脑, Pad DELETE /es_sku_index_20_20250109 PUT /es_sku_index_20_20250109 {"settings": {"index": {"number_of_shards": "5","number_of_replicas&quo…...
android 官网刷机和线刷
nexus、pixel可使用google官网线上刷机的方法。网址:https://flash.android.com/ 本文使用google线上刷机,将Android14 刷为Android12 以下是失败的线刷经历。 准备工作 下载升级包。https://developers.google.com/android/images?hlzh-cn 注意&…...
Vue环境变量配置指南:如何在开发、生产和测试中设置环境变量
-## 前言 Vue.js是一个流行的JavaScript框架,它提供了许多工具和功能来帮助开发人员构建高效、可维护的Web应用程序。其中一个重要的工具是环境变量,它可以让你在不同的环境中配置不同的参数和选项。在这篇博客中,我们将介绍如何在Vue应用程…...
蓝桥杯_B组_省赛_2022(用作博主自己学习)
题目链接算法11.九进制转十进制 - 蓝桥云课 进制转换 21.顺子日期 - 蓝桥云课 时间与日期 31.刷题统计 - 蓝桥云课 时间与日期 41.修剪灌木 - 蓝桥云课 思维 51.X 进制减法 - 蓝桥云课 贪心 61.统计子矩阵 - 蓝桥云课 二维前缀和 71.积木画 - 蓝桥云课 动态规划 82.扫雷 - 蓝桥…...
【干货】交换网络环路介绍
定义 以太网交换网络中为了提高网络可靠性,通常会采用冗余设备和冗余链路,然而现网中由于组网调整、配置修改、升级割接等原因,经常会造成数据或协议报文环形转发,不可避免的形成环路。如图7-1所示,三台设备两两相连就…...
unity——Preject3——面板基类
目录 1.Canvas Group Canvas Group 的功能 Canvas Group 的常见用途 如何使用 Canvas Group 2.代码 3.代码分析 类分析:BasePanel 功能 作用 实际应用 代码解析:hideCallBack?.Invoke(); 语法知识点 作用 虚函数(virtual)和抽象类(abstract)的作用与区别 …...
BTC系列 - 启示录
推荐《区块链启示录:中本聪文集》这本书, 原来早在2010年, BTC生态还不完善的时候, 社区中就已经畅想出了未来其它链上的特色方案, 中本聪也都一一做了教父级回应: coinbase币的成熟时间, 交易池, 交易确认机制, 防51%攻击, 防双重消费, 水龙头, 轻量级客户端, 链上…...
C# 25Dpoint
C# 25Dpoint ,做一个备份 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace _25Dpoint {public partial cl…...
Kotlin构造函数
class Person {var name: String? nullvar age: Int? nullfun think() {println("Mr./Ms.$name, who is $age years old, is thinking!")} }fun main () {val p Person()p.name "Jimmy"p.age 20p.think() } 在Kotlin中任意一个非抽象类都无法被继承…...
springMVC---resultful风格
目录 一、创建项目 pom.xml 二、配置文件 1.web.xml 2.spring-mvc.xml 三、图解 四、controller 一、创建项目 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi…...
flutter 装饰类【BoxDecoration】
装饰类 BoxDecoration BoxDecoration 是 Flutter 中用于控制 Container 等组件外观的装饰类,它提供了丰富的属性来设置背景、边框、圆角、阴影等样式。 BoxDecoration 的主要属性 1.color 背景颜色。类型:Color?示例: color: Colors.blu…...
自动连接校园网wifi脚本实践(自动网页认证)
目录 起因执行步骤分析校园网登录逻辑如何判断当前是否处于未登录状态? 书写代码打包设置开机自动启动 起因 我们一般通过远程控制的方式访问实验室电脑,但是最近实验室老是断电,但重启后也不会自动连接校园网账户认证,远程工具&…...
微信小程序集成Vant Weapp移动端开发的框架
什么是Vant Weapp Vant 是一个轻量、可靠的移动端组件库,于 2017 年开源。 目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。 官网地睛:介绍 - Vant Weapp (vant-ui.gith…...
MySQL从库 Last_SQL_Errno: 1197 问题处理过程
记录一个遇到过的错误,今天整理一下。 问题 MySQL error code MY-001197 (ER_TRANS_CACHE_FULL): Multi-statement transaction required morethan max_binlog_cache_size bytes of storage; increase this mysqld variable and try again报错很明显是max_binlog_…...
springboot 加载本地jar到maven
在Spring Boot项目中,如果你想要加载一个本地的jar文件到Maven本地仓库,你可以使用Maven的install-file目标来实现。以下是一个简单的例子: 打开命令行工具(例如:终端或者命令提示符)。 执行以下Maven命令…...
面向B站商业化场景的广告标题智能推荐
01.背景 大模型的发展也在不断改变广告主/代理商广告创编的过程,为了提高广告主的创作效率,提升广告主投放标题的质量,我们利用大语言模型技术以及B站商业数据,能够让广告主仅需要输入特定的关键词,即可以生成理论上无…...
element plus 使用 upload 组件达到上传数量限制时隐藏上传按钮
最近在重构项目,使用了 element plus UI框架,有个功能是实现图片上传,且限制只能上传一张图片,结果,发现,可以限制只上传一张图片,但是上传按钮还在,如图: 解决办法&…...
java进行pdf文件压缩
文章目录 pdf文件压缩 pdf文件压缩 添加依赖 <dependency><groupId>com.luhuiguo</groupId><artifactId>aspose-pdf</artifactId><version>23.1</version> </dependency>public class OptimizePdf {public static void opti…...
初识算法和数据结构P1:保姆级图文详解
文章目录 前言1、算法例子1.1、查字典(二分查找算法)1.2、整理扑克(插入排序算法)1.3、货币找零(贪心算法) 2、算法与数据结构2.1、算法定义2.2、数据结构定义2.3、数据结构与算法的关系2.4、独立于编程语言…...
内网服务器添加共享文件夹功能并设置端口映射
参考网址 https://blog.csdn.net/Think88666/article/details/118438465 1.服务器安装smb服务,由于网路安全不允许使用默认端口(445,446),于是修改端口为62445、62446。 2.每台需要共享的电脑都要修改端口映射&#x…...
ruoyi-cloud docker启动微服务无法连接nacos,Client not connected, current status:STARTING
ruoyi-cloud docker启动微服务无法连接nacos,Client not connected, current status:STARTING 场景 当使用sh deploy.sh base来安装mysql、redis、nacos环境后,紧接着使用sh deploy.sh modules安装微服务模块,会发现微服务无法连接nacos的情…...
Python----Python高级(函数基础,形参和实参,参数传递,全局变量和局部变量,匿名函数,递归函数,eval()函数,LEGB规则)
一、函数基础 1.1、函数的用法和底层分析 函数是可重用的程序代码块。 函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现。 在编写函数时…...
excel 整理表格,分割一列变成多列数据
数据准备 对于很多系统页面的数据是没有办法下载的。 这里用表格数据来举例。随便做数据的准备。想要看excel部分的可以把这里跳过,从数据准备完成开始看。 需要一点前端基础知识,但不多(不会也行)。 把鼠标放在你想要拿到本地的…...
Oracle 分区索引简介
目录 一. 什么是分区索引二. 分区索引的种类2.1 局部分区索引(Local Partitioned Index)2.2 全局分区索引(Global Partitioned Index) 三. 分区索引的创建四. 分区索引查看4.1 USER_IND_COLUMNS 表4.2 USER_INDEXES 表 五. 分区索…...
C++实现设计模式--- 观察者模式 (Observer)
观察者模式 (Observer) 观察者模式 是一种行为型设计模式,它定义了一种一对多的依赖关系,使得当一个对象的状态发生改变时,其依赖者(观察者)会收到通知并自动更新。 意图 定义对象之间的一对多依赖关系。当一个对象状…...
CentOS 6.8 安装 Nginx
个人博客地址:CentOS 6.8 安装 Nginx | 一张假钞的真实世界 提前安装: # sudo yum install yum-utils 一般情况下这个工具系统已经安装。 创建文件/etc/yum.repos.d/nginx.repo,输入内容如下: [nginx-stable] namenginx stab…...
px、em 和 rem 的区别:深入理解 CSS 中的单位
文章目录 前言一、px - 像素 (Pixel)二、em - 相对父元素字体大小 (Ems)三、rem - 相对于根元素字体大小 (Root Ems)四、综合比较结语 前言 在CSS中,px、em和rem是三种用于定义尺寸(如宽度、高度、边距、填充等)的长度单位。它们各自有不同的…...
vue 表格内点编辑,单元格不切换成输入框问题分析
vue 表格渲染时,我点击编辑时,想直接在单元格上面进行编辑。 效果如下,正常是文本效果,点击编辑时,出现输入框 其实实现起来,逻辑很简单,但是中间我却出现了一个问题,效果始终出不…...
MATLAB学习笔记-table
1.在table中叠加table table 的每一列具有固定的数据类型。如果要让表的所有单元格都可以任意填充,就得让每一列都是 cell 类型,这样表中每个单元格都是“一个元胞”。创建时可以先构造一个 空 cell 数组(大小为行数列数)&#x…...
使用 selenium-webdriver 开发 Web 自动 UI 测试程序
优缺点 优点 有时候有可能一个改动导致其他的地方的功能失去效果,这样使用 Web 自动 UI 测试程序可以快速的检查并定位问题,节省大量的人工验证时间 缺点 增加了维护成本,如果功能更新过快或者技术更新过快,维护成本也会随之提高…...
ffmpeg硬件编码
使用FFmpeg进行硬件编码可以显著提高视频编码的性能,尤其是在处理高分辨率视频时。硬件编码利用GPU或其他专用硬件(如Intel QSV、NVIDIA NVENC、AMD AMF等)来加速编码过程。以下是使用FFmpeg进行硬件编码的详细说明和示例代码。 1. 硬件编码支…...
脚本化挂在物理盘、nfs、yum、pg数据库、nginx(已上传脚本)
文章目录 前言一、什么是脚本化安装二、使用步骤1.物理磁盘脚本挂载(离线)2.yum脚本化安装(离线)3.nfs脚本化安装(离线)4.pg数据库脚本化安装(离线)5.nginx脚本化安装(离…...
// Error: line 1: XGen: Candidate guides have not been associated!
Maya xgen 报错// Error: line 1: XGen: Candidate guides have not been associated! 复制下面粘贴到Maya脚本管理器python运行: import maya.cmds as cmds def connect_xgen_guides():guide_nodes cmds.ls(typexgmMakeGuide)for node in guide_nodes:downstream…...
投机解码论文阅读:Falcon
题目:Falcon: Faster and Parallel Inference of Large Language Models through Enhanced Semi-Autoregressive Drafting and Custom-Designed Decoding Tree 地址:https://arxiv.org/pdf/2412.12639 一看它的架构图,可以发现它是基于EAGLE…...
OpenCV实现基于交叉双边滤波的红外可见光融合算法
1 算法原理 CBF是*Cross Bilateral Filter(交叉双边滤波)*的缩写,论文《IMAGE FUSION BASED ON PIXEL SIGNIFICANCE USING CROSS BILATERAL FILTER》。 论文中,作者使用交叉双边滤波算法对原始图像 A A A, B B B 进行处理得到细节࿰…...
Springboot整合WebService
1.1 概述 webservice 即 web 服务,因互联网而产生,通过 webservice 这种 web 服务,我们可以实现互联网应 用之间的资源共享,比如我们想知道 手机号码归属地,列车时刻表,天气预报,省市区邮…...
504 Gateway Timeout:网关超时解决方法
一、什么是 504Gateway Timeout? 1. 错误定义 504 Gateway Timeout 是 HTTP 状态码的一种,表示网关或代理服务器在等待上游服务器响应时超时。通俗来说,这是服务器之间“对话失败”导致的。 2. 常见触发场景 Nginx 超时:反向代…...
C++ 的 pair 和 tuple
1 std::pair 1.1 C 98 的 std::pair 1.1.1 std::pair 的构造 C 的二元组 std::pair<> 在 C 98 标准中就存在了,其定义如下: template<class T1, class T2> struct pair;std::pair<> 是个类模板,它有两个成员&#x…...
抢十八游戏
前言 我国民国一直流传着一个名叫“抢十八”的抢数游戏:参与游戏的两人从1开始轮流报数,每次至少报1个数,最多报2个数,每人报的每个数不得与自已报过的或对方报过的重复,也不得跳过任何一个数。谁先报到18,…...
从玩具到工业控制--51单片机的跨界传奇【2】
咱们在上一篇博客里面讲解了什么是单片机《单片机入门》,让大家对单片机有了初步的了解。我们今天继续讲解一些有关单片机的知识,顺便也讲解一下我们单片机用到的C语言知识。如果你对C语言还不太了解的话,可以看看博主的C语言专栏哟ÿ…...
LLM实现视频切片合成 前沿知识调研
1.相关产品 产品链接腾讯智影https://zenvideo.qq.com/可灵https://klingai.kuaishou.com/即梦https://jimeng.jianying.com/ai-tool/home/Runwayhttps://aitools.dedao.cn/ai/runwayml-com/Descripthttps://www.descript.com/?utm_sourceai-bot.cn/Opus Cliphttps://www.opu…...
学习threejs,使用FlyControls相机控制器
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.FlyControls 相机控制…...
wordpress 房产网站筛选功能
自定义分类法创建 add_action( init, ashu_post_type ); function ashu_post_type() {register_taxonomy(province,post,array(label => 省,rewrite => array( slug => province ),hierarchical => true));register_taxonomy(city,post,array(label => 市,rewr…...
SQL面试题2:留存率问题
引言 场景介绍: 在互联网产品运营中,用户注册量和留存率是衡量产品吸引力和用户粘性的关键指标,直接影响产品的可持续发展和商业价值。通过分析这些数据,企业可以了解用户行为,优化产品策略,提升用户体验…...
Redis是单线程还是多线程?
大家好,我是锋哥。今天分享关于【Redis是单线程还是多线程?】面试题。希望对大家有帮助; Redis是单线程还是多线程? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis是 单线程 的。 尽管Redis的处理是单线程的&a…...
mysql 变量,流程控制与游标
第16章_变量,流程控制与游标 1.变量 分为系统变量和用户自定义变量 1.1系统变量 1.1.1系统变量分类 系统变量分为全局系统变量以及会话系统变量 查看所有全局变量 SHOW GLOBAL VARIABLES 查看所有会话变量 SHOW SESSION VARIABLESor SHOW VARIABLES #默认是会话变量 …...
Java配置log4j日志打印
1. 引入依赖 <dependencies><!-- Log4j 2依赖 --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>1.2.14</version> <!-- 可以根据需要修改版本 --></…...