Git版本控制工具(Linux运维CICD版)

news2026/4/29 12:31:53
git概述Git诞生分布式项目管理工具目前整个行业内最流行最受欢迎的项目版本管理工具开发者Linus TorvaldsLinux的创始人Linux诞生以后全球很多开发者开发了很多个版本的Linux提交给Linus TorvaldsLinus Torvalds 将优秀的代码集成在Linux内核中手动管理所有的代码Linus Torvalds 不喜欢传统的免费CVS等工具因为这些工具不好用好用的都收费Linus Torvalds 选择了一个商业化的工具达成协议可以免费使用于是团队中的一个哥们有个想法能不能破解这个东西被发现了Linus Torvalds 保证不再破解两周以后Linus Torvalds 自己用C语言开发了Git使用了类似于Linux的管理方式Linus Torvalds 将Linux的版本控制切换到Git上Git的开发汲取了其他的版本控制工具的优点避免了缺点用git原生的方式就相当于写Linux命令git安装官网: https://git-scm.com/Debian 戴比安git安装[rootvm1~]# yum install git[rootvm1~]# git --versiongit version2.43.5查看参数帮助查看参数帮助[rootvm1~]# git --helpgit的操作可以说只需要git一条命令加参数即可git应用git身份设置因为git是分布式版本控制系统,不同的人提交代码需要区分,所以每个人都要设置一个身份标识。如果不设置的话谁会知道你这个开发者是张三李四还是王五呢?[rootvm1~]# git config --global user.name daniel[rootvm1~]# git config --global user.email danielitcast.cn[rootvm1~]# git config --global color.ui true[rootvm1~]# git config --listuser.namedanieluser.emaildanielitcast.cncolor.uitrue创建本地仓库工作目录(working directory): 也可叫工作区.是存放项目代码文件的一个目录。注意它不是一个普通的文件仓库(repository) : 也可叫版本库.在git init命令初始化工作目录后会产生一个隐藏的子目录.git, 可以将其理解为git的仓库或版本库。仓库分为本地仓库与远程仓库创建本地仓库的步骤:创建工作目录[rootvm1~]# mkdir GitTest在对应的工作目录中创建本地仓库[rootvm1~]# cd GitTest/[rootvm1GitTest]# git initInitialized empty Git repositoryin/root/GitTest/.git/会产生一个.git子目录,所有除代码数据外的相关数据都在此目录,不要修改它.(它就是仓库或叫版本库)[rootvm1GitTest]# ls .git/branches config description HEAD hooks info objects refs小结:mkdir创建一个工作目录, 然后cd进去, 使用git init就创建好了本地仓库。开发者就可以在工作目录里开发项目代码文件了。暂存区暂存区(stage或index): 也有叫缓存区暂存区就看作是一个缓区区域临时保存你的改动。如果在工作目录创建了一个新文件需要将新文件添加到暂存区。添加文件到暂存区1, 准备一个文件[rootvm1GitTest]# cat 1.pyprint(hello world)2, 使用git add命令提交到暂存区逆向操作为git rm --cached 1.py)[rootvm1GitTest]# git add 1.py3, 提交第一个文件后,版本库.git子目录里就多了一个index[rootvm1GitTest]# ls .git/branches config description HEAD hooksindexinfo objects refs4, 使用strings命令查看可以看到git add的文件列表[rootvm2GitTest]# strings .git/indexDIRC1.py 这里可以看到1.py文件添加到了index文件里了git版本控制提交文件(第1个版本)代码文件需要commit提交后才能纳入版本控制。1, 可以使用git status查看工作目录里有哪些文件需要提交[rootvm1GitTest]# git status# On branch master## Initial commit## Changes to be committed:# (use git rm --cached file... to unstage)## new file: 1.py#2, 使用git commit提交; -m 后接提交的说明信息 -m 表示备注信息[rootvm1GitTest]# git commit -m 提交1.py[master(root-commit)4e67190]提交1.py1filechanged,1insertion()createmode1006441.py3, 再次git status查看状态,没有需要提交的文件了[rootvm1GitTest]# git status# On branch masternothingtocommit,working directory clean小结初始化本地仓库 git init把工作目录代码提交到暂存区git add文件名称只提交某个文件/git add . 提交当前目录的所有文件把暂存区代码发布到本地仓库git commit -m “备注/描述信息”查看是否有代码需要提交 git status修改再提交(第2个版本)1, 修改1.py文件,我这里加了一句print(“hello python”)[rootvm1GitTest]# cat 1.pyprint(hello world)print(hello python)2, 使用git status查看信息告诉我们1.py被修改了[rootvm1GitTest]# git status# On branch master# Changes not staged for commit:# (use git add file... to update what will be committed)# (use git checkout -- file... to discard changes in working directory)## modified: 1.py#nochanges addedtocommit(usegit addand/orgit commit -a)3, 使用git diff查看修改了什么这个命令是在修改内容后没有提交到仓库再执行才可以看到效果[rootvm1GitTest]# git diff 1.pydiff--git a/1.py b/1.pyindex8cde782..5da7641100644--- a/1.pyb/1.py -11,2print(hello world)print(hello python)4, 提交修改(addcommit)[rootvm1GitTest]# git add 1.py[rootvm1GitTest]# git commit -m 添加了一行代码打印hello python[master0e9371b]添加了一行代码打印hello python1filechanged,1insertion()再修改再提交(第3个版本)再增加一句代码print(hello linux)[rootvm1GitTest]# cat 1.pyprint(hello world)print(hello python)print(hello linux)[rootvm1GitTest]# git add 1.py[rootvm1GitTest]# git commit -m 添加了一行代码打印hello linux[master b679b01]添加了一行代码打印hello linux1filechanged,1insertion()小结:工作目录中写好的代码文件需要先git add 文件名添加到暂存区如果提交的多了再git commit 文件名 提交。以后每次修改都要重复前两步。git status查看工作目录中的状态git diff 文件名查看文件修改了什么查看提交历史1, 使用git log查看提交的历史版本信息[rootvm1GitTest]# git logcommitb679b01f2ee42c1c4a7e14ed5d37e02da131a98e Author: danieldanielitcast.cnDate: Wed Jan1614:00:4420190800添加了一行代码打印hello linuxcommit0e9371bfdbc27049c31017773248ae8333b5bf3f Author: danieldanielitcast.cnDate: Tue Jan1523:43:5820190800添加了一行代码打印hello pythoncommit4e67190ec3c57f1708702c9eca5aebe88017bdd2 Author: danieldanielitcast.cnDate: Tue Jan1523:23:2620190800提交1.py2, 使用git log –prettyoneline查看提交的历史版本信息, 查看的显示信息更简洁。前面字符串你可以看作就是一个版本号(commit id)。[rootvm1GitTest]# git log --prettyonelineb679b01f2ee42c1c4a7e14ed5d37e02da131a98e 添加了一行代码打印hello linux0e9371bfdbc27049c31017773248ae8333b5bf3f 添加了一行代码打印hello python4e67190ec3c57f1708702c9eca5aebe88017bdd2 提交1.py 说明 PrettyPrint表示美化打印版本回退与还原重点1, 使用git reset --hard HEAD^回退到上一个版本(也就是第2个版本)[rootvm1GitTest]# git reset --hard HEAD^HEADisnow at0e9371b 添加了一行代码打印hello python# --hard 表示强制提交[rootvm1GitTest]# cat 1.pyprint(hello world)print(hello python)说明假设提交历史为A ← B ← C当前 HEAD 指向 C执行 git reset --hard HEAD^ 后就变成了 A ← Bgit reset --hard HEAD^^ 等于 HEAD~2回退到上两个提交2, 使用git reset --hard 第3个版本号还原到第3个版本。但如果我忘了第3个版本号是什么了,使用git reflog查看所有的操作历史。[rootvm1GitTest]# git reflog0e9371b HEAD{0}: reset: movingtoHEAD^b679b01 HEAD{1}:commit: 添加了一行代码打印hello linux0e9371b HEAD{2}:commit: 添加了一行代码打印hello python4e67190 HEAD{3}:commit(initial): 提交1.pyref 是 reference 的缩写指引用命令意为引用日志记录所有引用如 HEAD、分支的移动历史。3, 还原到第3个版本[rootvm1GitTest]# git reset --hard b679b01HEADisnow at b679b01 添加了一行代码打印hello linux[rootvm1GitTest]# cat 1.pyprint(hello world)print(hello python)print(hello linux)4, 回退到上上一个版本, 也就是回退两个版本,使用git reset --hard HEAD^^回退三个版本,使用git reset --hard HEAD^^^, 以此类推。如果回退100个版本那用100个^符号不方便可以换成git reset --hard HEAD~100[rootvm1GitTest]# git reset --hard HEAD^^HEADisnow at4e67190 提交1.py[rootvm1GitTest]# cat 1.pyprint(hello world)小结:提交后的代码文件使用git log查看当前版本及以前的历史版本。使用git reset --hard HEAD^或者git reset --hard HEAD~100实现版本回退。使用git reflog查看提交的所有操作及版本号使用git reset --hard 版本号你可以自由的在不同版本之间来回切换。简单说这是个“时光倒流”命令能让你的 Git 项目直接回到某个版本连带着把工作区和暂存区的改动全扔了。它特别狠不留一点痕迹。git reset --soft只动版本库暂存区和工作区不动。git reset --mixed默认动版本库和暂存区工作区留着。git reset --hard全清啥都不留。git工作流再次理解与应用拓展工作目录里任何修改或增加的文件都要git add到暂存区让暂存区和工作目录的状态一致这样才能提交一个版本。git commit提交的是在暂存区里的所有文件状态。也就是说是整个工作目录里的状态保存为一个版本而不是某一个文件。git版本控制不仅仅是用于项目开发你也可以用于一个软件包仓库的版本控制。撤销修改如果开发者状态不好,今天写的代码一团乱,想吃后悔药,git也提供了撤销的方法。1, 准备一行或一段写错的代码[rootvm1GitTest]# cat 1.pyprint(hello world)print(hello python)print(hello linux)print(hey,xxx is a gay)这是写错的代码需要反悔想要撤销修改有以下方法:直接把写错的代码删除就好, 但如果改变的代码很多开发者自己都忘了具体改了哪些代码这种做法就不方便了使用git checkout – 文件名就可以直接撤销修改了把仓库中的代码拉取覆盖本地代码如果写乱了代码添加暂存区但还没有commit提交。git rm --cached 1.py /手工修复来撤销修改也可以使用命令 git restore --staged 1.py 从暂存区中删除git restore 1.py恢复工作区中的 1.py还可以一条命令搞定 git restore --sourceHEAD --staged --worktree 1.py2.23版本才支持如果写乱了代码添加暂存区并提交了。则使用版本回退 git reset HEAD^| 版本号误删恢复1, 只要文件git add到了暂存区, 无论有没有git commit提交。误删除后都可以使用 git checkout – 文件名来恢复。[rootvm1 GitTest]# touch 2.py[rootvm1 GitTest]# git add 2.py[rootvm1 GitTest]# rm -rf 2.py[rootvm1 GitTest]# ls1.py[rootvm1 GitTest]# git checkout -- 2.py[rootvm1 GitTest]# ls1.py 2.py 说明 工作中git checkout--*更常见星号*表示当前目录下所有的文件2, 如果文件没有git add到暂存区, 误删除了就没了。[rootvm1GitTest]# touch 3.py[rootvm1GitTest]# rm -rf 3.py下面命令恢复报错[rootvm1GitTest]# git checkout -- .error: pathspec2.pydidnotmatchanyfile(s)knowntogit.文件删除1, 没有git add到暂存区的文件直接rm删除就ok2, git add添加到暂存区,但没有git commit提交的文件。需要rm删除本地,还要git rm 文件名删除[rootvm1GitTest]# touch 3.py[rootvm1GitTest]# git add 3.py[rootvm1GitTest]# rm -rf 3.py[rootvm1GitTest]# git rm 3.pyrm3.py3, git add添加到暂存区,并且已经git commit提交的文件需要rm删除本地,再git rm 文件名删除,最后再提交删除[rootvm1GitTest]# touch 3.py[rootvm1GitTest]# git add 3.py[rootvm1GitTest]# git commit -m 提交了3.py[master0236aef]提交了3.py1filechanged,0insertions(),0deletions(-)createmode1006443.py[rootvm1GitTest]# rm -rf 3.py[rootvm1GitTest]# git rm 3.pyrm3.py[rootvm1GitTest]# git commit -m 删除了3.py[master dc4ee5e]删除了3.py1filechanged,0insertions(),0deletions(-)deletemode1006443.pygit rm 3.py这条命令会把 3.py 文件从工作区和暂存区里删掉并且告诉 Git“我要把这个文件从下次提交里去掉。” 它不直接改版本库但会影响下一次提交的内容。小结git分支管理先来考虑一个问题: 开发者A开发软件的某一个功能模块, 还没有开发完成但害怕进度丢失就提交。假设另一位开发者B并不知道A没有完成, 而直接使用了A开发的文件,这造成了问题。解决方法: 开发者A创建一个属于自己的分支(fork)这个分支只属于A不会影响其他人。开发完成后合并到项目主分支即可。分支可以看作为平行空间查看分支默认只有一个master分支, 前面有*号的代表为当前分支。[rootvm1GitTest]# git branch*master创建分支使用git branch 分支名来创建分支[rootvm1GitTest]# git branch dev[rootvm1GitTest]# git branchdev*master切换分支使用git checkout 分支名来切换分支[rootvm1GitTest]# git checkout devSwitchedtobranchdev[rootvm1GitTest]# git branch*dev master合并分支1, 在dev分支上新开发了一个代码文件,添加并提交[rootvm1GitTest]# git branch*dev 确认为dev分支 master[rootvm1GitTest]# echo new feature 4.py[rootvm1GitTest]# git add 4.py[rootvm1GitTest]# git commit -m 增加了新特性[dev4a0c78e]增加了新特性1filechanged,1insertion()createmode1006444.py2, 切换到master分支后,却发现根本没有这个文件[rootvm1GitTest]# git checkout masterSwitchedtobranchmaster[rootvm1GitTest]# cat 4.pycat:4.py:Nosuchfileordirectory3, 合并分支,再查看能在master分支上查看到了[rootvm1GitTest]# git merge devUpdating dc4ee5e..4a0c78e Fast-forward4.py|11filechanged,1insertion()createmode1006444.py[rootvm1GitTest]# cat 4.pynew feature分支冲突面试有些复杂的情况会造成冲突这个时候git就不能帮我们自动的合并分支。我们就要手动处理冲突。1, 在dev分支修改文件[rootvm1GitTest]# git checkout devSwitchedtobranchdev[rootvm1GitTest]# echo 冲突测试 4.py[rootvm1GitTest]# cat 4.pynew feature 冲突测试2, 提交dev分支上的修改[rootvm1GitTest]# git add 4.py[rootvm1GitTest]# git commit -m 冲突测试[dev de5075c]冲突测试1filechanged,1insertion()3, 切回master分支,也修改相同的文件[rootvm1GitTest]# git checkout masterSwitchedtobranchmaster[rootvm1GitTest]# echo master feature 4.py[rootvm1GitTest]# cat 4.pynew feature master feature4, 提交master分支上的修改[rootvm1GitTest]# git add 4.py[rootvm1GitTest]# git commit -m 冲突测试[master c17f325]冲突测试1filechanged,1insertion()5, 合并dev分支到master就会出现冲突了[rootvm1GitTest]# git merge dev # 把dev合并过来也就是合并到master上Auto-merging4.py CONFLICT(content):Mergeconflictin4.py Automaticmergefailed;fix conflictsandthencommitthe result.6, 手工解决冲突面试git使用,,符号分割冲突的内容手动删除这些符号并修改成你想要的内容解决冲突前:[rootvm1GitTest]# cat 4.pynew featureHEAD master feature冲突测试dev 解决冲突后:[rootvm1GitTest]# cat 4.pynew feature 冲突解决7, 解决冲突后添加并提交,最后再合并[rootvm1GitTest]# git add 4.py[rootvm1GitTest]# git commit -m 冲突解决[master fb05c2f]冲突解决[rootvm1GitTest]# git merge devAlready up-to-date.小结什么原因产生了分支冲突、代码冲突答往往是不同的开发人员同时修改了同一份文件或者程序如何解决方案一开发前期要进行合理规划不同开发人员开发不同的模块或者功能代码尽量减少冲突的情况。方案二如果的确出现了分支冲突可以手工修复重新提交重新合并问题就可以解决了删除分支使用git branch -d 分支名来删除分支。注意:不能删除当前使用的分支.[rootvm1GitTest]# git branchdev*master[rootvm1GitTest]# git branch -d devDeleted branch dev(was de5075c).[rootvm1GitTest]# git branch*master恢复分支如果你不小心删除了一个分支还是可以恢复的。# 1 查看该分支的最近一次操作找到 ID 值git reflog恢复语法git branch[新分支名称]之前提交的commit_ID# 2 创建一个分支指向原来的 IDgit branch master 459f9b4# 再次查看发现文件都回来了llTAG标签将commit id关联一个容易记忆的标签更加方便用于版本的更新或回退。打TAG指定 commit id 打TAG# git tag -a v1.0 xxxx -m 稳定版第1版xxxx 表示commit_id 说明-a 是-annotate 的缩写表示创建带注释的标签git log --oneline 可以用于查看commit id。如果不指定commit id则代表最新的commit id将最新的commit id打TAG# git tag -a v1.1 -m 稳定版第2版查看TAG# 查看 tag# git tag# 查看具体 tag 信息# git show v1.0删除TAG# git tag -d v1.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2538756.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…