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

Git入门

一、Git 基础概念

1. 版本控制系统分类

  • 本地版本控制:如RCS,仅在本机保存历史版本
  • 集中式版本控制:如SVN,单一中央服务器管理代码
  • 分布式版本控制:如Git,每个开发者都有完整的仓库副本

2. Git 核心概念

概念说明
仓库(Repository)项目所有版本数据的存储位置
工作目录(Working Directory)项目文件的当前状态
暂存区(Staging Area)准备提交的文件列表
提交(Commit)永久的项目快照
分支(Branch)独立开发线
标签(Tag)特定提交的标记

3. Git 工作流程

工作目录 → git add → 暂存区 → git commit → 本地仓库 → git push → 远程仓库

二、Git 安装与配置

1. 安装 Git

  • Windows:下载 Git for Windows
  • macOSbrew install git 或从官网下载
  • Linux
    # Ubuntu/Debian
    sudo apt install git# CentOS/RHEL
    sudo yum install git
    

2. 初始配置

# 设置用户名
git config --global user.name "Your Name"# 设置邮箱
git config --global user.email "your.email@example.com"# 查看配置
git config --list# 设置默认编辑器(可选)
git config --global core.editor "code --wait"  # VS Code

三、基础操作

1. 创建仓库

# 初始化新仓库
git init# 克隆现有仓库
git clone https://github.com/user/repo.git
git clone https://github.com/user/repo.git myfolder  # 指定目录名

2. 基本工作流

# 检查文件状态
git status# 添加文件到暂存区
git add filename.txt       # 添加特定文件
git add .                  # 添加所有更改
git add *.js               # 添加所有js文件# 提交更改
git commit -m "描述信息"# 查看提交历史
git log
git log --oneline          # 简洁版
git log --graph --all      # 图形化显示分支

3. 文件操作

# 删除文件
git rm filename.txt# 重命名/移动文件
git mv oldname.txt newname.txt# 忽略文件(.gitignore)
echo "node_modules/" >> .gitignore
echo "*.log" >> .gitignore

四、分支管理

1. 基础分支操作

# 查看分支
git branch          # 本地分支
git branch -a       # 所有分支(包括远程)# 创建分支
git branch new-feature
git checkout -b new-feature  # 创建并切换# 切换分支
git checkout main# 合并分支
git checkout main
git merge new-feature# 删除分支
git branch -d new-feature    # 安全删除
git branch -D new-feature    # 强制删除

2. 分支策略

  • 主分支(main/master):稳定版本
  • 开发分支(develop):集成最新开发成果
  • 功能分支(feature/xxx):开发新功能
  • 发布分支(release/xxx):准备发布版本
  • 热修复分支(hotfix/xxx):紧急修复生产问题

3. 分支合并策略

# 普通合并(创建合并提交)
git merge feature-branch# 变基合并(线性历史)
git checkout feature-branch
git rebase main
git checkout main
git merge feature-branch# 解决冲突后继续
git add conflicted-file.txt
git rebase --continue

五、远程仓库

1. 远程操作基础

# 查看远程仓库
git remote -v# 添加远程仓库
git remote add origin https://github.com/user/repo.git# 推送到远程
git push -u origin main    # 首次推送
git push                   # 后续推送# 从远程拉取
git pull origin main       # 拉取并合并
git fetch origin           # 仅获取不合并

2. 多人协作流程

# 1. 获取最新代码
git fetch origin# 2. 基于远程分支创建本地分支
git checkout -b feature-x origin/feature-x# 3. 开发完成后推送
git push origin feature-x# 4. 创建Pull Request/Merge Request
# (在GitHub/GitLab界面上操作)# 5. 同步主分支
git checkout main
git pull origin main

3. 远程分支管理

# 跟踪远程分支
git checkout --track origin/feature-y# 删除远程分支
git push origin --delete old-branch# 更新远程分支列表
git remote update origin --prune

六、高级操作

1. 撤销更改

# 撤销工作目录修改
git checkout -- filename.txt# 撤销暂存区文件
git reset HEAD filename.txt# 修改最后一次提交
git commit --amend# 回退到特定提交
git reset --hard commit_hash   # 彻底回退
git reset --soft commit_hash   # 保留更改到暂存区
git revert commit_hash         # 创建反向提交

2. 储藏更改

# 储藏当前工作
git stash
git stash save "描述信息"# 查看储藏列表
git stash list# 恢复储藏
git stash apply stash@{0}
git stash pop            # 恢复并删除# 删除储藏
git stash drop stash@{0}

3. 标签管理

# 创建标签
git tag v1.0.0
git tag -a v1.0.1 -m "Release version 1.0.1"# 推送标签
git push origin v1.0.0
git push origin --tags   # 推送所有标签# 删除标签
git tag -d v0.9.0
git push origin --delete v0.9.0

七、Git 内部原理

1. Git 对象模型

  • Blob:文件内容
  • Tree:目录结构
  • Commit:项目快照
  • Tag:特定提交的引用

2. 引用与HEAD

# 查看引用
cat .git/HEAD
cat .git/refs/heads/main# 查看对象内容
git cat-file -p commit_hash

3. 底层命令示例

# 创建blob对象
echo "content" | git hash-object -w --stdin# 创建tree对象
git update-index --add --cacheinfo 100644 blob_hash filename.txt
git write-tree

八、Git 工作流

1. 集中式工作流

  • 类似SVN,所有开发者直接向主分支提交
  • 适合小型团队

2. 功能分支工作流

  • 每个功能在独立分支开发
  • 通过Pull Request合并

3. Git Flow

# 初始化Git Flow
git flow init# 开始新功能
git flow feature start feature-name# 完成功能
git flow feature finish feature-name# 发布版本
git flow release start 1.0.0
git flow release finish 1.0.0

4. Forking工作流

  • 每个开发者fork主仓库
  • 通过Pull Request贡献代码
  • 开源项目常用

九、Git 工具与技巧

1. 图形化工具

  • gitk:内置图形化历史查看器
  • GitHub Desktop:GitHub官方GUI
  • SourceTree:免费的Git GUI客户端
  • VS Code Git集成:内置的Git支持

2. 命令行增强

# 更美观的log
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit# 别名配置(添加到~/.gitconfig)
[alias]co = checkoutbr = branchci = commitst = statuslg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

3. 二分查找问题提交

git bisect start
git bisect bad           # 当前版本有问题
git bisect good v1.0.0   # 标记已知好版本
# 测试后标记good/bad
git bisect reset         # 结束

十、常见问题解决

1. 合并冲突

# 查看冲突文件
git status# 手动解决冲突后
git add resolved-file.txt
git commit

2. 恢复误删分支

# 查找删除的分支提交
git reflog# 恢复分支
git branch branch-name commit-hash

3. 大文件处理

# 使用git-lfs管理大文件
git lfs install
git lfs track "*.psd"
git add .gitattributes

4. 清理历史

# 交互式变基
git rebase -i HEAD~5# 清理历史大文件
git filter-branch --tree-filter 'rm -f large-file.iso' HEAD

十一、Git 最佳实践

  1. 提交规范

    • 使用明确的提交信息
    • 遵循Conventional Commits
    feat: 添加用户登录功能
    fix: 修复首页加载错误
    docs: 更新API文档
    
  2. 分支管理

    • 保持主分支可部署
    • 功能分支尽量小且专注
    • 定期同步主分支
  3. 工作习惯

    • 频繁提交,原子性提交
    • 先拉取再推送
    • 使用.gitignore排除不需要的文件
  4. 团队协作

    • 明确合并权限
    • 代码审查流程
    • 定义清晰的工作流

十二、Git 进阶资源

  1. 官方文档:https://git-scm.com/doc
  2. Pro Git 书籍:https://git-scm.com/book
  3. Git 可视化学习:https://learngitbranching.js.org/
  4. Git 练习平台:https://gitexercises.fracz.com/

通过掌握这些Git操作,您将能够高效管理代码版本,无论是个人项目还是团队协作开发。记住,Git的强大在于实践,多尝试不同的命令和工作流,找到最适合您项目的方式。

相关文章:

Git入门

一、Git 基础概念 1. 版本控制系统分类 本地版本控制&#xff1a;如RCS&#xff0c;仅在本机保存历史版本集中式版本控制&#xff1a;如SVN&#xff0c;单一中央服务器管理代码分布式版本控制&#xff1a;如Git&#xff0c;每个开发者都有完整的仓库副本 2. Git 核心概念 概…...

5G + 物联网:智能世界的催化剂,如何用Python打造下一代IoT应用?

5G 物联网&#xff1a;智能世界的催化剂&#xff0c;如何用Python打造下一代IoT应用&#xff1f; 在数字化时代&#xff0c;物联网&#xff08;IoT&#xff09; 已成为智能产业的关键技术。从智能家居到智慧城市&#xff0c;再到工业4.0&#xff0c;我们的世界正在变得越来越…...

从单点突破到链式攻击:XSS 的渗透全路径解析

在网络安全领域&#xff0c;跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;简称 XSS&#xff09;早已不是新鲜话题。然而&#xff0c;随着网络技术的迭代与应用场景的复杂化&#xff0c;攻击者不再满足于单一的 XSS 漏洞利用&#xff0c;而是将 XSS 与其他安全漏洞…...

spark和hadoop的对比和联系

一、Apache Hadoop 简介 Hadoop是一个由Apache基金会开发的开源分布式计算平台。它主要由Hadoop分布式文件系统&#xff08;HDFS&#xff09;和MapReduce计算框架组成。HDFS是为大规模数据存储而设计的&#xff0c;它将文件分割成多个数据块&#xff08;block&#xff09;&…...

【Vue3 / TypeScript】 项目兼容低版本浏览器的全面指南

在当今前端开发领域&#xff0c;Vue3 和 TypeScript 已成为主流技术栈。然而&#xff0c;随着 JavaScript 语言的快速演进&#xff0c;许多现代特性在低版本浏览器中无法运行。本文将详细介绍如何使 Vue3 TypeScript 项目完美兼容 IE11 等低版本浏览器。 一、理解兼容性挑战 …...

从零开始搭建你的个人博客:使用 GitHub Pages 免费部署静态网站

&#x1f310; 从零开始搭建你的个人博客&#xff1a;使用 GitHub Pages 免费部署静态网站 在互联网时代&#xff0c;拥有一个属于自己的网站不仅是一种展示方式&#xff0c;更是一种技术能力的体现。今天我们将一步步学习如何通过 GitHub Pages 搭建一个免费的个人博客或简历…...

java 设计模式 原型模式

简介 原型模式&#xff08;Prototype Pattern&#xff09; 是一种创建型设计模式&#xff0c;它通过复制现有对象来生成新对象&#xff0c;而不是通过 new 关键字创建。核心思想是减少对象创建的开销&#xff0c;尤其是当对象初始化过程复杂或代价较高时。 原型模式的核心实现…...

分别配置Github,Gitee的SSH链接

文章目录 前言一、为第二个账号生成新的密钥对二、 配置 SSH config 文件1.引入库使用 Host 别名进行 clone/push/pull注意扩展 前言 之前已经在电脑配置过Github一个仓库ssh链接&#xff0c;今天想配一个Gitee仓库的ssh链接。运行 ssh-keygen -t rsa提示已经存在&#xff0c…...

从零开始搭建Django博客②--Django的服务器内容搭建

本文主要在Ubuntu环境上搭建&#xff0c;为便于研究理解&#xff0c;采用SSH连接在虚拟机里的ubuntu-24.04.2-desktop系统搭建&#xff0c;当涉及一些文件操作部分便于通过桌面化进行理解&#xff0c;通过Nginx代理绑定域名&#xff0c;对外发布。 此为从零开始搭建Django博客…...

如何用python脚本读取本地excel表格Workbook.xlsx将里面B2:B8内容,发给本地ollama大模型改写内容后写入对应C2:C8?

环境: python3.10 Win10专业版 ollama 火山引擎 影刀 问题描述: 如何用python脚本读取本地excel表格Workbook.xlsx将里面B2:B8内容,发给本地ollama大模型改写内容后写入对应C2:C8? 解决方案: 1.制作一个python脚本如下: import openpyxl import requests import…...

webpack详细打包配置,包含性能优化、资源处理...

以下是一个详细的 Webpack 5 配置示例&#xff0c;包含常见资源处理和性能优化方案&#xff1a; const path require(path); const webpack require(webpack); const { BundleAnalyzerPlugin } require(webpack-bundle-analyzer); const TerserPlugin require(terser-webp…...

MYSQL的binlog

用于备份恢复和主从复制 binlog 有 3 种格式类型&#xff0c;分别是 STATEMENT&#xff08;默认格式&#xff09;、ROW、 MIXED&#xff1a; STATEMENT&#xff1a;每一条修改数据的 SQL 都会被记录到 binlog 中&#xff08;相当于记录了逻辑操作&#xff0c;所以针对这种格式…...

Saliency Driven Perceptual Image Compression阅读

2021 WACV 创新点 常用的评估指标如MS-SSIM和PSNR不足以判断压缩技术的性能&#xff0c;它们与人类对相似性的感知不一致(2和3的MS-SSIM更高&#xff0c;但文字反而没那么清晰)。 考虑显著区域的压缩&#xff08;a&#xff09;将更多的比特分配给显著区域&#xff08;b&#…...

【C++ 类和数据抽象】构造函数

目录 一、构造函数的基本概念 1.1 构造函数核心特性 1.2 构造函数的作用 1.3 构造函数类型体系 二、构造函数的类型 2.1 默认构造函数 2.2 带参数的构造函数 2.3 拷贝构造函数 2.4 移动构造函数&#xff08;C11 及以后&#xff09; 三、初始化关键技术 3.1 成员初始…...

kotlin的kmp编程中遇到Unresolved reference ‘java‘问题

解决办法 打开 File → Project Structure → Project 确保 Project SDK 是 与你的 jvmToolchain 保持一致 如果没有&#xff0c;点击右上角 Add SDK 添加 JDK 路径 同步Sync 然后就正常了。 package org.example.projectimport androidx.compose.animation.AnimatedVi…...

鸿蒙Flutter仓库停止更新?

停止更新 熟悉 Flutter 鸿蒙开发的小伙伴应该知道&#xff0c;Flutter 3.7.12 鸿蒙化 SDK 已经在开源鸿蒙社区发布快一年了&#xff0c; Flutter 3.22.x 的鸿蒙化适配一直由鸿蒙突击队仓库提供&#xff0c;最近有小伙伴反馈已经 2 个多月没有停止更新了&#xff0c;不少人以为停…...

【Ultralytics 使用yolo12 读取tiff 数据异常解决】

Ultralytics 使用yolo12 读取tiff 数据解决 Ultralytics 使用yolo12 读取tiff 数据异常解决 Ultralytics 使用yolo12 读取tiff 数据异常解决 Lib\site-packages\ultralytics\utils\patches.py def imread(filename: str, flags: int cv2.IMREAD_COLOR):"""Read…...

画布交互系统深度优化:从动态缩放、小地图到拖拽同步的全链路实现方案

画布交互系统深度优化&#xff1a;从动态缩放、小地图到拖拽同步的全链路实现方案 在可视化画布系统开发中&#xff0c;高效的交互体验与稳定的性能表现是核心挑战。本文针对复杂场景下的五大核心需求&#xff0c;提供完整的技术实现方案&#xff0c;涵盖鼠标中心缩放、节点尺寸…...

GTS-400 系列运动控制器板(七)----修改限位开关触发电平

运动控制器函数库的使用 运动控制器驱动程序、dll 文件、例程、Demo 等相关文件请通过固高科技官网下载,网 址为:www.googoltech.com.cn/pro_view-3.html 1 Windows 系统下动态链接库的使用 在 Windows 系统下使用运动控制器,首先要安装驱动程序。在安装前需要提前下载…...

学习前端(前端技术更新较快,需持续关注技术更新)

目录 1. 基础三件套 1.1 HTML 1.2 CSS 1.3 JavaScript 2. 前端框架 2.1 React 2.2 Vue 2.3 Angular 3. 工程化工具 3.1 构建工具 3.2 代码质量 4. 网络和安全 4.1 HTTP/HTTPS 4.2 性能优化 5. 前沿技术 5.1 TypeScript 5.2 WebAssembly 5.3 微前端 5.4 可视…...

视频转换为MP4格式,小白工具批量转换,在线操作,简单快捷,超实用

小白工具https://www.xiaobaitool.net/videos/convert-to-mp4/ 是一款适合在线将视频转换为MP4格式的工具&#xff0c;尤其适合希望快速转换且无需下载安装软件的用户。以下是对该工具的详细推荐及使用建议&#xff1a; 一、工具特点 在线操作&#xff0c;无需下载 用户只需通…...

PDF处理控件Aspose.PDF指南:使用 Python 将 EPUB 转换为 PDF

EPUB是一种流行的电子书格式&#xff0c;用于可重排内容&#xff0c;而PDF则广泛用于固定版式文档&#xff0c;非常适合共享和打印。如果您想使用 Python 将 EPUB 转换为 PDF&#xff0c;Aspose.PDF for Python 提供了一个简单可靠的解决方案。在本教程中&#xff0c;我们将向您…...

超级扩音器手机版:随时随地,大声说话

在日常生活中&#xff0c;我们常常会遇到手机音量太小的问题&#xff0c;尤其是在嘈杂的环境中&#xff0c;如KTV、派对或户外活动时&#xff0c;手机自带的音量往往难以满足需求。今天&#xff0c;我们要介绍的 超级扩音器手机版&#xff0c;就是这样一款由上海聚告德业文化发…...

Jenkins的地位和作用

所处位置 Jenkins 是一款开源的自动化服务器&#xff0c;广泛应用于软件开发和测试流程中&#xff0c;主要用于实现持续集成&#xff08;CI&#xff09;和持续部署&#xff08;CD&#xff09;。它在开发和测试中的位置和作用可以从以下几个方面来理解&#xff1a; 1. 在开发和测…...

NumPy进阶:广播机制、高级索引与通用函数详解

目录 一、广播机制&#xff1a;不同形状数组间的运算 1. 概念 2. 广播规则 3. 实例 二、高级索引&#xff1a;布尔索引与花式索引 1. 布尔索引 &#xff08;1&#xff09;创建布尔索引 &#xff08;2&#xff09;布尔索引的应用 2. 花式索引 &#xff08;1&#xff0…...

Trino分布式 SQL 查询引擎

Trino&#xff08;以前称为 PrestoSQL&#xff09;是一个开源的分布式 SQL 查询引擎&#xff0c;专为交互式分析查询设计&#xff0c;可对大规模数据集进行快速查询。以下从多个方面详细介绍 Trino&#xff1a; 主要特点 多数据源支持&#xff1a;Trino 能够连接多种不同类型…...

Oracle DBA 高效运维指南:高频实用 SQL 大全

大家好&#xff0c;这里是 DBA学习之路&#xff0c;专注于提升数据库运维效率。 目录 前言Top SQL表空间使用率RMAN 备份DataGuard等待事件行级锁在线日志切换用户信息ASM 磁盘组DBLink数据文件收缩AWR 写在最后 前言 作为一名 Oracle DBA&#xff0c;在日常数据库运维工作中&…...

SpringBoot原生实现分布式MapReduce计算

一、架构设计调整 核心组件替换方案&#xff1a; 1、注册中心 → 数据库注册表 2、任务队列 → 数据库任务表 3、分布式锁 → 数据库行级锁 4、节点通信 → HTTP REST接口 二、数据库表结构设计 节点注册表 CREATETABLE compute_nodes (node_id VARCHAR(36)PRIMARYKEY,last_…...

可吸收聚合物:医疗科技与绿色未来的交汇点

可吸收聚合物&#xff08;Biodegradable Polymers&#xff09;作为生物医学工程的核心材料&#xff0c;正引领一场从“金属/塑料植入物”到“智能降解材料”的范式转移。根据QYResearch&#xff08;恒州博智&#xff09;预测&#xff0c;2031年全球可吸收聚合物市场销售额将突破…...

Java从入门到“放弃”(精通)之旅——抽象类和接口⑨

Java从入门到“放弃”&#xff08;精通&#xff09;之旅&#x1f680;——抽象类和接口⑨ 引言 在Java面向对象编程中&#xff0c;抽象类和接口是两个非常重要的概念。它们为代码提供了更高层次的抽象能力&#xff0c;是设计灵活、可扩展系统的关键工具。 &#x1f7e6;一、抽…...

游戏引擎学习第239天:通过 OpenGL 渲染游戏

回顾并为今天的内容做准备 今天&#xff0c;我想继续完成这部分内容&#xff0c;因为实际上我们已经完成了大部分工作&#xff0c;剩下的部分并不复杂。我计划今天完成这部分实现&#xff0c;至少是那些不涉及纹理的部分。正如昨天所说&#xff0c;纹理部分才是唯一比较复杂的…...

基于Python的多光谱遥感数据处理与分类技术实践—以农作物分类与NDVI评估为例

多光谱遥感数据包含可见光至红外波段的光谱信息&#xff0c;Python凭借其丰富的科学计算库&#xff08;如rasterio、scikit-learn、GDAL&#xff09;&#xff0c;已成为处理此类数据的核心工具。本文以Landsat-8数据为例&#xff0c;演示‌辐射校正→特征提取→监督分类→精度评…...

数字空间与VR有什么关系?什么是数字空间?

数字空间与VR的关系 数字空间与虚拟现实&#xff08;VR&#xff09;之间存在着紧密而复杂的关系&#xff0c;它们相互影响、共同促进发展。为了深入理解这一关系&#xff0c;我们需要明确数字空间的基本概念及其与VR技术的相互作用。 数字空间的概念 数字空间&#xff0c;通常…...

navicat导入sql文件 所有问题解决方法集合

问题一&#xff1a;mysql导入大批量数据出现MySQL server has gone away的解决方法 方法一&#xff1a; 查看mysql max_allowed_packet的值 show global variables like max_allowed_packet;可以看到是64M(67108864/1024/1024) 调整为所需大小 例如我们需要调整为1024M(102…...

3、有Bluetooth,LCD,USB,SD卡,PSRAM,FLASH、TP等软硬件驱动开发经验优先考虑

首先&#xff0c;Bluetooth驱动开发经验。蓝牙是一种无线通信技术&#xff0c;广泛应用于设备之间的数据传输&#xff0c;比如耳机、键盘、智能家居设备等。驱动开发可能涉及底层协议的实现、与硬件的交互&#xff0c;以及确保兼容性和稳定性。需要了解蓝牙协议栈&#xff0c;如…...

【k8s】PV,PVC的回收策略——return、recycle、delete

PV 和 PVC 的回收策略主要用于管理存储资源的生命周期&#xff0c;特别是当 PVC 被删除时&#xff0c;PV 的处理方式。回收策略决定了 PV 在 PVC 被删除后的行为。 回收策略的类型 Kubernetes 提供了三种主要的回收策略&#xff0c;用于管理 PV 的生命周期&#xff1a; Reta…...

K8S探针的应用

目录&#xff1a; 1、探针的简介2、启用探针2.1、启用就绪探针2.2、启用存活探针2.3、启用启动探针&#xff08;可选&#xff09; 1、探针的简介 在Kubernetes中&#xff0c;探针&#xff08;Probes&#xff09;是用来检查容器健康状况的工具&#xff0c;它们帮助Kubernetes了…...

c++STL——stack、queue、priority_queue的模拟实现

文章目录 stack、queue、priority_queue的模拟实现使用部分模拟实现容器适配器deque的介绍原理真实结构deque的迭代器deque的操作deque的优缺点 stack的模拟实现按需实例化queue的模拟实现priority_queue的模拟实现为何引入仿函数代码实现 stack、queue、priority_queue的模拟实…...

【Redis】字符串类型List 常用命令详解

文章目录 1. 添加1.1 lpush - 从左或Rpush - 从右添加元素1.2 linsert - 插入新值到某个值前后 2. 获取2.1 lrange - 根据区间获取值2.2 lindex - 根据下标获取值2.3 llen - 获取列表的长度 3. 删除3.1 lpop - 移除最左或rpop - 最右的元素3.2 lrem - 移除指定的值3.3 rpoplpus…...

.NET仓储层在 using 块中创建 SqlSugarClient 的风险

如题&#xff0c;先看代码示例 using 块的使用 public ISugarQueryable<T> GetSet(Expression<Func<T, bool>> whereExpression null) {using (SqlSugarClient dbClient SqlSugarInstance.GetInstance()){var query dbClient.Queryable<T>();if (w…...

PowerQuery逆透视将二维表转换为一维表

PowerQuery逆透视将二维表转换为一维表 原因&#xff1a;为什么要转成一维表&#xff1f; 实例&#xff1a; 1.例如如果用二维表做占比图&#xff0c;我们需要将所有的指标列添加到值上&#xff0c;如图&#xff1a; 2.如果用一维表&#xff0c;我们只需要添加一个指标列和一…...

谐振模态图

t0时刻&#xff0c;原边Q6、Q7导通副边Q1、Q4导通 T1时刻&#xff0c;原边谐振回路电流&#xff0c;由负变正&#xff0c;过零点&#xff0c;副边绕组电流小于负载电流&#xff0c;输出电容放电 T2时刻&#xff0c;副边绕组电流等于负载电流&#xff0c;输出电容不充不放 T3时…...

Idea 配置 Git

1、下载Git 下载地址&#xff1a; Git - Downloading Package 2、win 打开 git bash &#xff0c;配置邮箱和用户名 //配置邮箱 git config --global user.email "710419844qq.com" //配置全局用户名 git config --global user.name "smelodys" 3、ide…...

B + 树与 B 树的深度剖析

在数据库领域&#xff0c;B 树和 B 树是两种极为关键的数据结构&#xff0c;它们对于数据的存储、查询以及索引的构建等方面都有着深远的影响。深刻理解这两种树的原理、特性以及它们之间的差异&#xff0c;对于数据库的性能优化、数据组织和管理等工作具有不可替代的重要作用…...

MongoDB索引

一、索引核心价值 MongoDB索引通过构建高效查询路径&#xff0c;从根本上改变数据检索方式。当未建立索引时&#xff0c;数据库引擎被迫执行全集合扫描&#xff08;COLLSCAN&#xff09;&#xff0c;如同在无序的书架上逐本查找目标书籍。通过建立索引&#xff0c;查询复杂度从…...

Docker--Docker网络原理

虚拟网卡 虚拟网卡&#xff08;Virtual Network Interface&#xff0c;简称vNIC&#xff09; 是一种在软件层面模拟的网卡设备&#xff0c;不依赖于物理硬件&#xff0c;而是通过操作系统或虚拟化技术实现网络通信功能。它允许计算机在虚拟环境中模拟物理网卡的行为&#xff0…...

Java 性能优化:如何在资源受限的环境下实现高效运行?

Java 性能优化&#xff1a;如何在资源受限的环境下实现高效运行&#xff1f; 在计算机系统中&#xff0c;性能优化是一项至关重要的任务&#xff0c;尤其是在资源受限的环境下&#xff0c;如何让 Java 程序高效运行是许多开发者面临的挑战。本文将深入探讨 Java 性能优化的策略…...

Spring之我见 - Spring MVC重要组件和基本流程

核心组件详解 前端控制器 - DispatcherServlet 作用&#xff1a;所有请求的入口&#xff0c;负责请求分发和协调组件。 public class DispatcherServlet extends HttpServlet {// 核心服务方法protected void doService(HttpServletRequest request, HttpServletResponse re…...

MongoDB常用命令

数据库操作 显示所有数据库 show dbs 切换/创建数据库 (如果数据库不存在则创建) use <database_name> 删除当前数据库 db.dropDatabase() 查看当前数据库 db 查看数据库状态 db.stats() 集合操作 显示当前数据库中的所有集合 show collections 创建集合 d…...

Java Set/List 知识点 Java面试 基础面试题

Java Set/List 知识点 Set与List区别 List 有序、值可重复,内部数据结构 Obejct[ ] 数组Set 无序、值不重复,内部数据结构 HashMap keyobject value固定new Object() ArrayList 有序存储元素允许元素重复&#xff0c;允许存储 null 值支持动态扩容非线程安全 HashSet、LinkedHa…...