版本控制器Git(1)
文章目录
- 前言
- 一、初识Git
- 问题引入
- 解决方案
- 注意事项
- 二、Git安装
- 三、Git配置与基本操作
- Git创建
- Git配置用户名称和地址
- 认识工作区、暂存区、版本库
- 添加文件到仓库
- 添加文件到暂存区
- 提交暂存区内容到本地仓库
- 查看提交历史
- 四、Git 暂存区、HEAD、对象库及文件
- Git内部结构概览
- 查看和理解 Git 对象
- 工作区、暂存区、版本库的操作流程
- 总结
前言
我又又开新篇了,一个方向学得有点累了就换下口味,只要在后端这个大方向下就行!
这并不难,但是确实是开发过程中不可或缺的工具,赶快学起来吧!
一、初识Git
问题引入
想象一下,你现在在写一份材料报告,交了第一版后被mentor打回,改到第十版又被要求还是提交第一版,这个时候你估计想刀Ta的心就有了
诸如此类,在日常工作或学习中,我们常常遇到需要保存多个版本文件的情况,例如文档编写时为了防止丢失或误改而产生的多个副本(如“报告-v1”、“报告-v2”等)。随着版本数量增加,不仅文件数量增多,而且难以记住每个版本具体修改了什么内容。同样地,项目代码也存在同样的问题
解决方案
为了能够更⽅便我们管理这些不同版本的⽂件,便有了版本控制器。所谓的版本控制器,就是能让你了解到⼀个⽂件的历史,以及它的发展过程的系统。
通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。
⽬前最主流的版本控制器就是 Git 。Git 可以控制电脑上所有格式的⽂件,例如 doc、excel、dwg、dgn、rvt等等。对于我们程序员来说,Git 最重要的就是可以帮助我们管理软件开发项⽬中的源代码⽂件!
注意事项
还需要再明确⼀点,所有的版本控制系统,Git 也不例外,其实只能跟踪⽂本⽂件的改动,⽐如 TXT ⽂件,⽹⻚,所有的程序代码等等。版本控制系统可以告诉你每次的改动,⽐如在第5⾏加了⼀个单词“Linux”,在第8⾏删了⼀个单词 “Windows”。
⽽图⽚、视频这些⼆进制⽂件,虽然也能由版本控制系统管理,但没法跟踪⽂件的变化,只能把⼆进制⽂件每次改动串起来,也就是只知道图⽚从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
二、Git安装
请注意,我是在CentOS Linux release 7.6.1810 (Core)环境下操作的
可以通过以下指令查看git版本,也就是查看了是否安装了git
git --version
若还没下载,可以通过这行指令来下载git,在我的本地环境里面我已经下载了
sudo yum -y install git
三、Git配置与基本操作
Git创建
要提前说的是,仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制,就必须先创建⼀个仓库出来
创建本地Git仓库的命令是git init。此命令需要在你希望作为仓库根目录的文件夹内执行
执行上述命令后,你会注意到当前目录下出现了一个名为.git的隐藏目录,而我已经创建过,所以提示重复初始化git仓库
.git目录是Git用来跟踪和管理仓库的地方。它包含了所有必要的元数据和配置文件。注意不要手动修改这个目录中的文件,以免破坏Git仓库的结构。
对于有兴趣深入了解的 uu,可以在不影响项目的情况下探索.git目录的内容,以增进对Git工作原理的理解。
Git配置用户名称和地址
当安装完 Git 后,首要任务是设置你的用户名称和 E-mail 地址。这是非常重要的,因为每次 Git 提交都会使用这些信息。
- 全局配置(适用于所有仓库):
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
- 本地配置(仅适用于当前仓库):如果希望在不同仓库中使用不同的用户名或邮箱,可以在特定仓库内执行以下命令,而不带 --global 选项:
git config user.name "Your Name"
git config user.email "email@example.com"
- 查看配置:使用以下命令可以列出所有的 Git 配置项:
git config -l
git config --list
- 删除配置:若要删除某个配置项,可以使用 --unset 选项:
git config [--global] --unset user.name
git config [--global] --unset user.email
认识工作区、暂存区、版本库
- 工作区:这是你在电脑上编写代码或文件的目录。
- 暂存区(Stage/Index):一般存放于 .git/index 文件中,用于存储即将提交到版本库中的更改。
- 版本库(Repository):位于工作区的隐藏 .git 目录下,用来管理所有文件的修改和历史记录。
当你创建一个新的 Git 版本库时,Git 会自动创建一个名为 master 的分支及指向该分支的 HEAD 指针。对工作区的文件进行修改后,需先通过 git add 命令将更改添加到暂存区,再通过 git commit 将暂存区的内容提交至版本库。
.git 是 Git 用来跟踪和管理仓库的地方,包含了所有必要的元数据和配置文件。不要手动修改这个目录中的文件,以免破坏 Git 仓库的结构。
添加文件到仓库
要将新文件或修改后的文件添加到 Git 管理中,需要经历两个步骤:add 和 commit。
添加文件到暂存区
添加单个或多个文件:
git add [file1] [file2] ...
添加指定目录及其子目录:
git add [dir]
添加当前目录下的所有改动:
git add .
提交暂存区内容到本地仓库
提交暂存区的所有内容(默认):
git commit -m "message"
提交暂存区的指定文件:
git commit [file1] [file2] ... -m "message"
注意,git commit 后面的 -m 参数用于提供描述性提交信息,这部分内容非常重要,因为它记录了你所做的更改细节。
查看提交历史
你可以使用 git log 查看项目的提交历史。为了简化输出,还可以加上 --pretty=oneline 参数以获得更简洁的格式。
git log --pretty=oneline
这将显示每个提交的简短摘要(漂亮的一行),包括 提交 ID(SHA1 格式的哈希值),它是一个由 Git 自动生成的唯一标识符,用以区分不同的提交。
你看到的 commit ID 肯定跟我不一样,这以你的为准
四、Git 暂存区、HEAD、对象库及文件
Git内部结构概览
- 暂存区(Index)
- index 文件位于 .git 目录下,是暂存区的物理存储位置。
- 使用 git add 命令后,修改或新增的内容会被添加到这里。暂存区的作用是在提交前收集所有要纳入版本控制的更改。
- HEAD 指针
- 默认情况下,HEAD 是指向当前分支的一个指针,通常是指向 master 分支。
- 可以通过查看 .git/HEAD 文件来确认 HEAD 当前所指向的分支。
- master 分支
- master 分支是一个特殊的默认分支,代表项目的主线发展。
- 查看 master 分支最新的提交 ID(commit id),可以通过查看 .git/refs/heads/master 文件内容
- 对象库(Objects)
- .git/objects 目录存放了所有被 Git 管理的对象,包括提交(commits)、树(trees)、标签(tags)和 blob(文件内容)。
- 对象名由 SHA-1 哈希值表示,前两位作为子目录名,剩余部分作为文件名。例如,对于提交 ID c9091af21fd2929fd9a8c42876a1f6ba686eb3b9,其路径为 .git/objects/c9/091af21fd2929fd9a8c42876a1f6ba686eb3b9。
查看和理解 Git 对象
- 使用 git cat-file -p < object-id > 命令可以解码并查看对象的内容。
- 提交对象包含元数据(如作者信息、时间戳)以及指向树对象的引用
工作区、暂存区、版本库的操作流程
添加文件到仓库
- 新建或修改文件后,使用 git add 将更改添加到暂存区。
- 使用 git commit 提交暂存区的内容到本地仓库中。注意,只有在暂存区中的文件才会被提交。
处理未添加到暂存区的文件
- 如果有新的文件没有通过 git add 添加到暂存区,那么这些文件不会被 git commit 捕获。
- 解决方法是再次执行 git add 后再进行 git commit。
修改文件
- Git 跟踪的是修改而非文件本身。任何对文件内容的变更(如新增行、删除行、更改字符等)都被视为一次修改。
- 修改文件后,可以使用 git status 查看哪些文件已被修改但尚未添加到暂存区。
- 使用 git diff [file] 显示工作区与暂存区之间的差异,帮助理解具体做了哪些改动。
- 使用 git diff HEAD – [file] 查看工作区与最近一次提交之间的区别。
提交修改后的文件
- 修改文件后,先用 git add 将更改添加到暂存区,然后用 git commit 提交更改。
- 提交完成后,git status 应显示 nothing to commit, working tree clean,表明没有待提交的更改。
总结
第一篇还是不要搞那么多,下次会为大家带来git的版本回退和撤销修改等精彩内容
相关文章:
版本控制器Git(1)
文章目录 前言一、初识Git问题引入解决方案注意事项 二、Git安装三、Git配置与基本操作Git创建Git配置用户名称和地址认识工作区、暂存区、版本库添加文件到仓库添加文件到暂存区提交暂存区内容到本地仓库 查看提交历史 四、Git 暂存区、HEAD、对象库及文件Git内部结构概览查看…...
VMware安装Windows server 2016
1、新建虚拟机,选择自定义模式 2、选择兼容性 4、命名虚拟机 5、固件类型 EFI 虚拟磁盘类型,不同电脑推荐的类型不同,用默认的就行 删除声卡和打印机 检查网络配置 选择本地的Windows server 2016的系统镜像,系统镜像可以去Window…...
【编程向导】-JavaScript-基础语法-类型检测
类型检测 类型检测的方法: typeofinstanceofObject.prototype.toStringconstructor typeof typeof 操作符返回一个字符串,表示未经计算的操作数的类型。 typeof undefined; // "undefined" typeof null; // "object" typeof 10…...
Python并发编程实战:突破GIL限制的工程化解决方案
一、GIL的本质与影响范围 **全局解释器锁(Global Interpreter Lock,GIL)**是CPython解释器的核心机制,其本质是一个互斥锁,保证同一时刻只有一个线程执行Python字节码。这一设计使得: ✅ 简化内存管理:避免多线程竞争对象引用计数 ❌ 限制多核性能:CPU密集型多线程程序…...
FPGA学习篇——Verilog学习之全加器的实现
跟着野火的视频学习了一下全加器的实现~ 1 半加器和全加器原理 首先,解释一下为什么全加器的 公式还可以写成以下形式: (1)首先我们要明白: 因为由真值表来看,他们是不相同的(当ab1时ÿ…...
嵌入式学习L6网络编程D4多进程并发
多线程 客户端 /*./client serv_ip serv_port */ #include "net.h"void usage (char *s) {printf ("\n%s serv_ip serv_port", s);printf ("\n\t serv_ip: server ip address");printf ("\n\t serv_port: server port(>5000)\n\n"…...
四层协议攻防手册:从SYN Flood到UDP反射的深度防御
一、四层协议攻击类型与特征 攻击类型协议层特征SYN FloodTCP大量半开连接,SYN_RECV状态堆积UDP反射放大UDP小请求包触发大响应(如NTP、DNS响应)TCP分片攻击TCP发送异常分片耗尽重组资源连接耗尽攻击TCP建立大量空闲连接占用端口资源 二、TC…...
hive开窗函数
进入hive [root@hadoop01 conf]# hive ... hive (default)> show databases; OK database_name default Time taken: 0.528 seconds, Fetched: 1 row(s)创建数据库 hive (default)> create database test; hive (default)> use test;创建表 字段名字段字段类型学号S…...
【技术白皮书】内功心法 | 第二部分 | Telnet远程登录的工作原理
远程登录的工作原理 背景介绍远程登录远程登录的服务模式远程登录服务的实现基础远程登录服务的运行模式Telnet服务为什么不被操作系统管理 Telnet协议的原理网络虚终端(NVT)结束标示NVT的原理NVT屏蔽差异 背景介绍 绝大多数计算机都是运行多用户操作系…...
AnyPlace助力Franka突破物体形状与配置多样性挑战
物体几何形状与放置配置多样性的挑战 在机器人操作领域,物体放置一直是一个复杂且富有挑战性的任务。由于物体的几何形状和放置配置的多样性,实现稳健且可推广的物体放置变得尤为困难。 传统的机器人放置方法往往依赖于大量的特定任务演示,…...
【工控】线扫相机小结 第五篇
背景介绍 线扫相机通过光栅尺的脉冲触发, 我在调试线扫过程中,发现图像被拉伸,预设调节分配器。图像正常后,我提高的相机的扫描速度(Y轴动的更快了)。 动的更快的发现,图像变短了(以…...
【Prometheus】层层解析prometheus如何监控k8s核心组件
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...
泄露测试仪CTS的Sentinel I28使用
前言:本文档主要讨论CTS Sentinel I28的使用方法,设备图片如下: 具体文档可从下面链接下载: https://download.csdn.net/download/qq_34047402/90471262 泄露测试仪CTS的SentinelI28使用资源-CSDN文库 [注意] 调压方式,若选择机械式调压,那么测试的压力值只能有1个,…...
Python字典,集合
一.字典 在 Python 中,字典(dict)是一种非常重要且常用的数据结构,它用于存储键值对. 如下为字典的创建,打印键,打印值,和清空的操作 二.集合 在 Python 中,集合(set)是一种无序且唯一的数据…...
【数据分析大屏】基于Django+Vue汽车销售数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅
目录 一、项目背景 二、项目创新点 三、项目功能 四、开发技术介绍 五、项目功能展示 六、权威视频链接 一、项目背景 汽车行业数字化转型加速,销售数据多维分析需求激增。本项目针对传统报表系统交互性弱、实时性差等痛点,基于DjangoVue架构构建…...
Ubuntu用户安装cpolar内网穿透
前言 Cpolar作为一款体积小巧却功能强大的内网穿透软件,不仅能够在多种环境和应用场景中发挥巨大作用,还能适应多种操作系统,应用最为广泛的Windows、Mac OS系统自不必多说,稍显小众的Linux、树莓派、群辉等也在起支持之列&#…...
关于sqlalchemy的ORM的使用
关于sqlalchemy的ORM的使用 二、创建表三、使用数据表、查询记录 二、创建表 使用Mapped来映射字段 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker,Mapped,mapped_columnBase declarative_base() engine create_engin…...
C 语言分支与循环:构建程序逻辑的基石
在 C 语言的世界里,分支和循环结构是编程的核心内容,它们赋予了程序根据不同条件执行不同操作以及重复执行特定代码段的能力,让程序变得更加智能和高效。今天,我们就深入探讨 C 语言分支和循环的相关知识,助力大家夯实…...
J-LangChain - Agent - 编排一个 ReAct + Function Call 反应链
系列文章索引 J-LangChain 入门 介绍 j‑langchain 是一款基于 Java 的 AIGC 编排框架,致力于集成多种大模型(LLM)调用及 RAG 工具。自 1.0.8 版本起,我们引入了工具函数(Function Call)调用能力…...
Rust 之一 基本环境搭建、各组件工具的文档、源码、配置
概述 Rust 是一种强调性能、类型安全和并发性的通用编程语言。它强制执行内存安全,使用其特有的所有权机制,而无需传统的垃圾收集器。Rust 不强制执行编程范式,但受到函数式编程思想的影响。 最初是由 Mozilla 员工 Graydon Hoare 在 2006 年…...
详细介绍 Jupyter nbconvert 工具及其用法:如何将 Notebook 转换为 Python 脚本
nbconvert 是 Jupyter 提供的一个非常强大的工具,允许用户将 Jupyter Notebook 文件(.ipynb)转换成多种格式,包括 Python 脚本(.py)、HTML、PDF、LaTeX 等。你可以通过命令行来运行 nbconvert,也…...
C语言之预处理
预处理 一.头文件的包含1.1头文件的作用1.2包含头文件的方式- 包含标准库头文件- 包含用户自定义头文件 1.3嵌套文件包含 二.条件编译2.1条件编译的作用2.2条件编译的指令 三.预定义符号四.define4.1define定义常量4.2#define定义宏4.2.1定义宏时常见错误 4.3宏替换的规则4.4带…...
AcWing--869.试除法求约数
题目: 给定 n 个正整数 ai,对于每个整数 ai,请你按照从小到大的顺序输出它的所有约数。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含一个整数 ai。 输出格式 输出共 n 行,其中第 i 行输出第 i 个整数 ai 的所有…...
【HeadFirst系列之HeadFirstJava】第16天之深入解析 Java 集合与泛型:高效管理数据的终极指南!(含代码实战)
Java 集合与泛型全解析:数据结构的奥秘(基于 Head First Java 第 16 章) 在 Java 开发中,我们经常需要存储和操作大量数据。如何高效地存储、检索和操作数据?如何避免数组的局限性?Java 集合框架ÿ…...
【从零开始学习计算机科学】操作系统(七)文件管理
【从零开始学习计算机科学】操作系统(七)文件管理 文件管理文件的逻辑结构文件的读写方式文件的物理结构与组织文件目录空闲块管理文件的共享文件的权限控制与保护文件系统的其他功能文件管理 文件管理主要涉及文件的逻辑组织和物理组织,目录的结构和管理。所谓文件管理,就…...
Stable Diffusion F.1模型全面解析
一、引言:生成式AI的变革与SD模型的演进 生成式AI的崛起 扩散模型(Diffusion Model)成为图像生成领域的主流范式,其通过逐步去噪过程实现高保真图像合成。Stable Diffusion(SD)作为开源社区标杆,…...
基于SpringBoot的手机销售网站设计与实现(源码+SQL脚本+LW+部署讲解等)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
上海利氪科技-再次续订MappingSpace
2024年6月,智能底盘系统方案商利氪科技完成C轮融资,本轮融资规模超10亿元人民币。 成立于2021年,利氪科技短短三年时间就已获得近20亿元融资。 利氪科技是领先的智能线控底盘系统方案商。公司聚焦新能源汽车和自动驾驶核心领域,依…...
go注册rpc接口
1.定义proto文件: syntax "proto3";package pb;service Service { rpc RPC (Request) returns (Reply) {} }message Request {string Action 1;int64 TraceID 2;string Payload 3; }message Reply {int32 Code 1;int64 TraceID 2;string Pa…...
如何在Spring Boot中校验用户上传的图片文件的两种方法
在现代应用中,用户上传图片是一个常见的需求。无论是社交平台、电子商务网站还是任何需要用户交互的应用,图片上传功能都显得尤为重要。但合理地校验用户上传的图片文件是必不可少的步骤,避免不合规的文件影响系统的稳定性和安全性。本文将介…...
如何将一个项目推送到gitlab
1. 初始化本地项目为 Git 仓库 若本地项目还不是 Git 仓库,要先将其初始化为 Git 仓库。在项目根目录下打开终端,执行如下命令: git init 2. 添加文件到暂存区 使用 git add 命令把项目中的文件添加到暂存区。若要添加所有文件࿰…...
【JavaWeb学习Day24】
Web前端实战 Vue工程化 Vue是一款用于构建用户界面的渐进式的JavaScript框架。(官方:https://cn.vuejs.org) Vue项目工程化:在企业级的前端项目开发中,把前端开发所需求的工具、技术、流程、经验等进行规范、标准化。…...
Scratch034豌豆发射(下)
知识回顾 1、克隆体点击角色的判断 2、使用克隆体时“停止该角色其他脚本”积木的作用范围。 效果演示 提示:这里可以添加本文要记录的大概内容每隔一段时间,舞台右侧就会出现多个除草机向左移动 点击不同位置的豌豆射手,可以发射豌豆攻击对应位置的除草机 除草机被豌豆击中…...
nacos下载及安装
下载官方最新稳定版 github下载较慢,推荐下面的下载链接 Nacos Server 下载 | Nacos 官网 点击下载和试用下载最新稳定版 Nacos Server 下载 | Nacos 官网 配置检查(可选) 默认情况下,Nacos 使用内置的 Derby 数据库&#x…...
javase集合框架Map篇
一、常见的Map的实现 有HashMap、Hashtable、LinkedHashMap、TreeMap、ConcurrentHashMap。 二、HashMap和Hashtable 的区别 HashMap:底层是基于数组链表,非线程安全的,默认容量是16、允许有空的健和值。 Hashtable:基于哈希表…...
【RAGFlow】windows本地pycharm运行
原因 由于官方只提供了docker部署,基于开源代码需要实现自己内部得逻辑,所以需要本地pycharm能访问,且docker运行依赖得其余组件,均需要使用开发服务器得配置。 修改过程 安装python 项目依赖于Python 版本:>3.1…...
STM32初始安装
前言 很多人刚买来STM32就迫不及待地想要用它来写程序,看见STM32开发版和ST-Link上有几个插口就直接连接,结果就像我一样一不小心就导致ST -Link烧坏了😂 所以本篇博客将做最基础的但是对于小白来说最重要的教学,STM32的线路连接…...
数据库系统概论(二)数据模型
数据库系统概论(二)数据模型 数据库系统概论(二)数据模型前言一、数据建模二、概念模型三、数据模型的三要素四、层次模型五、网状模型六、关系模型 总结(核心概念速记): 数据库系统概论&#x…...
深入理解C语言链表:数据结构的基石
在C语言的编程宇宙中,链表就像是一座稳固的基石,支撑着众多复杂程序的构建。它以独特的魅力和强大的功能,在解决各类编程难题时发挥着至关重要的作用。今天,就让我们一同深入探索链表的奥秘。 目录 一、链表初相识 二、链表的结…...
微信小程序文件存储和获取的详细方案
在微信小程序中,要根据索引(如自定义标识符)检查是否存在对应的文件,可以通过以下方案实现。这里假设你已通过某种方式将文件路径与索引关联存储(例如使用本地缓存 Storage),以下是完整流程&…...
java BCC异或校验例子
需求 对一个十六进制的字符串进行BCC校验 方法 private static String XORCheck(String rawMsg) {// 16进制字符串需要转成10进制数组进行校验,然后再返回16进制字符串用于与原来的字符匹配byte[] bytes HexDumpMsgFormat.hexStr2DesBytes(rawMsg);return BytesUt…...
[machine learning] DP(Data Parallel) vs DDP(Distributed Data Parallel)
DP和DDP是并行训练的两种方法,本文简单介绍它们两者的区别。 一、DP (Data Parallel) DP是单进程,多线程的,每个线程负责一个GPU,它只适用于一台机器。DP训练的流程如下图所示(图片转载自:https://medium.com/mlshar…...
今日头条文章爬虫教程
今日头条文章爬虫教程 随着互联网的发展,新闻资讯类平台如今日头条积累了海量的数据。对于数据分析师、研究人员等群体来说,获取这些数据进行分析和研究具有重要的价值。本文将介绍如何使用Python编写爬虫,爬取今日头条的文章数据。 一、准…...
鸿蒙应用开发—数据持久化之SQLite
文章目录 SQLite简介创建数据库添加数据查询数据更新数据删除数据升级数据库使用事务参考 SQLite简介 SQLite是一个轻量级关系数据库,占用资源很少,只有几百KB的大小,无需服务器支撑,是一个零配置、事务性的SQL数据库引擎。 相对…...
Docker Compose 部署 steamcmd 安装奈斯服务端
由于打算在云端服务器部署奈斯启示录服务端跟朋友们一起玩, 所以在云端搭建服务器, 顺便写下本文章记录搭建的过程。 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 要使用 Docker Compose 部署 steamcmd(Steam 命令行…...
K8s 1.27.1 实战系列(八)Service
一、Service介绍 1、Service 的作用与核心功能 Service 是 Kubernetes 中用于抽象一组 Pod 并提供稳定访问入口的资源。它解决了以下问题: Pod IP 不固定:Pod 可能因故障、扩缩容或更新导致 IP 变化,Service 通过 ClusterIP(虚拟 IP)提供固定访问地址。负载均衡:自动…...
Scala编程_实现Rational的基本操作
在Scala中实现一个简单的有理数(Rational)类,并对其进行加法、比较等基本操作. 有理数的定义 有理数是可以表示为两个整数的比值的数,通常形式为 n / d,其中 n 是分子,d 是分母。为了确保我们的有理数始终…...
Android15 Camera框架中的StatusTracker
StatusTracker介绍 StatusTracker是Android15 Camera框架中用来协调Camera3各组件之间状态转换的类。 StatusTracker线程名:std::string("C3Dev-") mId "-Status" Camera3 StatusTracker工作原理 StatusTracker实现批处理(状态…...
Manus 演示案例:谷歌公司运营模拟器游戏体验
一、项目背景与愿景 在科技行业蓬勃发展的当下,谷歌作为行业巨头,其成长历程充满了无数值得深入探究的决策智慧。这些决策不仅塑造了谷歌的辉煌,也为全球企业的发展提供了宝贵的借鉴。本项目旨在打造一款以谷歌公司发展为蓝本的运营模拟器游戏…...
【大模型基础_毛玉仁】2.1 大数据+大模型→新智能
【大模型基础_毛玉仁】2.1 大数据大模型→新智能 2.大语言模型架构2.1 大数据大模型→新智能2.1.1 大数据大模型→能力增强1)Kaplan-McCandlish 扩展法则2)Chinchilla 扩展法则 2.1.2 大数据大模型→能力扩展 2.大语言模型架构 大语言模型(L…...