Git全套命令使用

news2024/11/15 5:27:31

日升时奋斗,日落时自省

目录

1、Git安装

1.1、创建git本地仓库

1.2、配置Git

1.3、认识Git内部区分

2、Git应用操作

2.1、添加文件

2.2、查看日志

2.3、查看修改信息

2.4、查看添加信息

3、版本回退

4、撤销修改

4.1、工作区撤销

4.2、已经add,但没有commit

4.3、已经add,也commit

4.4、误删文件

4.4.1、删除工作区文件

4.4.2、删除版本库中的文件

5、分支管理

5.1、创建分支

5.2、分支切换

5.3、合并分支

5.4、删除分支

5.5、合并冲突

5.6、分支管理策略

5.6.1、分支策略

5.7、bug分支

6、远程操作

6.1、创建远程仓库

6.2、克隆远程仓库

6.3、向远程仓库推送

6.4、拉取远程仓库

6.5、配置Git

6.5.1、忽略特殊文件

7、标签管理

7.1、创建标签

7.2、删除标签

7.3、标签推送到远程

8、扩展

8.1、拉取远程仓库

8.2、删除远程仓库


注:本文图片较多,比较基础,耐心观看,如果内容有问题请留言,我尽快回复

当前分为以下三个版本的内容(还有一个没有列举出来:分布式版本控制系统)

Git版本管理:自由进⾏版本回退、撤销、修改等Git操作⽅式

Git分⽀管理:从分⽀创建,切换,合并,删除的整个⽣命周期,灵活进⾏各种场景下的分⽀管理

Git远程仓库与本地仓库:结合版本管理与分⽀管理,做到基于分⽀级的个⼈级开发

每次甲方可能会让我们乙方改多次版本,那我们就每次版本都会有所保存,以及修改内容的查询

Git就是为了解决版本控制;

1、Git安装

Linux系统大多使用两种centos和Ubuntu

(1)centos

可以先看自己的linux服务器上是否装有git

输入命令:git 

显示:command not found

出现像上的结果,那就是linux没有安装git

安装git命令:yum -y install git

安装好后,可以产看安装版本:

查看版本命令:git --version

(2)Ubuntu

可以先看自己的linux服务器上是否装有git

输入命令:git 

显示:command ‘git’ not found,but can be installed with

安装git: apt-get install git -y

查看版本:git --version

1.1、创建git本地仓库

仓库是进行版本控制的一个文件目录,所以使用过giteee的友友们都是在一个文件夹中创建一个仓库

这里我们先创建文件夹,我在root目录下创建一个gicode文件目录

创建目录命令:mkdir gitcode

 其实刚创建的文件是看不见的,查看后也是空空如也

创建一个Git的本地仓库 命令:git init

 .git目录是Git用来跟踪管理仓库的这里面的内容不要手动修改,修改乱了,就会破坏仓库

想查看git中详细内容: 我们这里使用命令:tree -a  (需要安装tree)

 1.2、配置Git

当安装Git后首先要做的事情设置你的用户名称,和e-mail地址,配置是连接你自己要连接的仓库的账号(此处就可以拿gitee中的用户名和邮箱进行连接操作)

修改用户名命令:git config [--global] user.name "输入你的用户名"

修改email命令:git config [--global] user.email "输入你的email"

查看的仓库详细信息命令:git config -l

注:这里的--global加上是针对所有仓库,都能看见,如果不加当前设置只是针对当前仓库,创建仓库也不一定就是这一个绑定的仓库,还会有其他的,所以这里看着自己的需求

1.3、认识Git内部区分

区域分为三个区域:工作区、暂存区、版本库

首先概念上理解:

工作区:在电脑上要写代码或者文件的目录

暂存区:英文叫做stage或 index 一般存放在.git目录下的index文件中,暂存区也叫做索引

版本库:又名仓库,英文名repository,工作区有一个隐藏目录.git 它不算工作区,而是Git版本库,这个版本库里面的所有文件都可以被Git管理,追踪历史,或者再将来某个时刻可以"还原"

注:HEAD是一个指针,它指向当前所在的分支。每次提交都会创建一个新的commit对象,这个对象包含了这次提交的所有更改。HEAD指针总是指向最新的commit对象,也就是当前所在的分支的最新提交

工作区和版本库库是分开的,但是都在一个目录下,通过新建或粘贴目录的文件,并不能称为向仓库新增文件,仅仅是工作区新增文件,必须通过使用git add 和 git commit命令才能将文件添加到仓库中进行管理

2、Git应用操作

2.1、添加文件

演示添加一个ReadMe文件,先在工作区vim ReadMe 写一个文件内容

添加文件到暂存区 :git add [file1] [file2] [file3]...

添加目录到暂存区: git add [dir]

从暂存区提交到本地库中:git commit -m "辅助信息"

注:提交选项 -m 表示的就是做一个提交信息,之后方便我们查看日志(log)的时候能知道对于这个文件是干什么的

(1)针对单个文件进行操作上传

(2)针对多个文件进行上传操作

注:首先我们要工作区进行文件创建或者上传项目源码,才能进git操作

2.2、查看日志

查看日志文件:git log

 如果只需要显示提交码:

简介显示命令: git log --pretty=oneline 

显示成一行显示,不在显示用户名和 邮箱其实主要是针对提交码

如果提交多次或者很久没有进行查看,不知道当前最新提交文件是那个,通过HEAD指针进行操作

注:通过HEAD指针找到最近提交的位置,查看位置获得提交码

object主要用于存储分支对应的提交记录。当您创建一个新的分支时,Git会将该分支的提交记录存储在.git/objects目录下。当您切换到另一个分支时,Git会将该分支的提交记录从.git/objects目录下移动到相应的目录中

使用命令:ls .git/objects 

推荐在linux系统上安装一个tree就能实现树形结构展示

2.3、查看修改信息

我们铜鼓日志log看到了对应很长一个字符串(有数字又字符)这就是每次提交的版本号,我们能根据当前版本号知道针对这个文件都进行了那些操作

查看修改信息命令:git cat-file -p  版本号

注:这里的版本号进行复制就行了,不需要手敲,每次查看日志打印,或看最近一次的日志就是使用HEAD指针进行查询

先通过查看日志找到需要的版本号:git log  

通过版本号查询相关信息:git cat-file -p 版本号

再次查找这里的有tree 对应的版本号 就是针对所有文件展示的版本号

再次使用命令:git cat-file -p 版本号(tree对应的版本号)

2.4、查看添加信息

本地仓库目录有文件进行修改,但是没有不知道有没有进行添加,当前查看使用

查看添加信息:git status

最后这里友友们自行提交即可

这里还能查看修改那些内容在没有git add的时候 使用命令:git diff 文件名

3、版本回退

git回退是针对版本控制的

版本回退命令:git reset  [--soft | --mixed | --hard] [HEAD]

[--soft | --mixed | --hard]:只能选择其一

--soft:参数对于工作区和暂存区的内容不变,只是将版本库回退到某个指定的版本

--mixed:是默认选项,使用时可以不用带该参数,将暂存区的内容回退为指定提交版本内容,工作区文件保持不变

--hard:参数将暂存区与工作区都回退到指定版本,切忌工作区有提交的代码不要使用这个命令,因为工作区会回滚,提交代码也就没有了,所以--hard使用一定要谨慎使用

这里演示--hard 对应版本回退:
先准备前置操作:添加两个版本,进行版本回退

开始进行回退:

如果真的回退有问题,在一定条件下是可以在找回来了,但是如果太多指令过去了,就可能真的找不到了

挽救命令:git reflog

深度理解版本维护:

4、撤销修改

4.1、工作区撤销

在工作区就是本地文件内容没有进行add,可以自行进行修改,添加和修改无非就是删减代码

但是如果已经添加了很多代码怎么办,这里可以使用 命令:git diff 文件名 

能够产看你添加了那些代码

清楚工作区的修改:工作区回退命令:git checkout -- 文件名

4.2、已经add,但没有commit

4.3、已经add,也commit

4.4、误删文件

演示思路:先删除文件--》git status进行检查--》文件确实删除了--》挽救文件--》

4.4.1、删除工作区文件

涉及找回命令:git checkout -- 误删工作区的文件名

4.4.2、删除版本库中的文件

前面展示的只是删除工作区上的文件,但是并没有完全删除,这里需要的是删除整个文件,包括仓库中的文件

使用仓库删除命令:git rm 仓库文件名

进行提交删除命令:git commit -m "delete"

5、分支管理

直接上图:进行分支理解;

在版本回退⾥,你已经知道,每次提交,Git都把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前,只有⼀条时间线,在Git⾥,这个分⽀叫主分⽀,即master分⽀

5.1、创建分支

Git支持我们查看或者创建其他分支,这里演示创建一个dev分支,对应的命令为:

查看分支:git branch 

创建分支:git branch dev

注:*表示的当前所在的分支,这里master就是我们当前正在使用的分支,所以master前面就有一个*(*就是HEAD指针指向位置)

分支存储在路径:.git/refs/heads 

也可以查看版本号路径:.git/refs/heads/*

当前分支图如下,dev是刚刚创建一个的分支路径,但是不是提交路径所以当前HEAD是不会改变的

5.2、分支切换

切换分支命令:git checkout 分支名(是的,这里再一次看见了checkout 作用很多)

*在那个分支前面当前就说明是操作那个分支 (说明这里切换成功)

这里再次修改文件操作ReadMe 看看有什么区别

注:放心dev分支上的内容是一点没有少,因为这两个压根不是一起的

dev分支经过一次提交了,此时HEAD指针是在哪呢(没错就是在dev分支新提交的ReadMe上)

5.3、合并分支

master分支上是没有dev分支上的修改内容的,dev就像我们的开发分支,我们最后修改还是要终止与master分支上,那我们就进行分支合并,dev合并到master上

合并分支操作:先切换到我们要合并的分支(也就是主分支),然后使用命令合并 分支

合并命令:git merge  分支名(当前分支为主分支, 将分支名合并到当前所在分支)

注:git merge 命令⽤于合并指定分⽀到当前分⽀。合并后,master就能看到dev分⽀提交的内容了

是不是感觉就像是master分支赶上dev分支,分支合并也相当于add 和 commit一次一样,HEAD指针是会跟着移动的

5.4、删除分支

合并完成后原来的分支也就没有用了,那么原来创建dev分支也就可以被删除了(提示:当前处于分支是不能删除的,需要切换到另一个分支才能进行删除)

删除图解:

5.5、合并冲突

合并也并不是总是能合成成功的,也会遇见冲突问题

这里从新将dev1分支创建回来

创建分支:git checkout -b dev1  (-b 就是春创建后直接进入这个分支)

以下分别修改文件是为了(演示两个不同分支内容的修改代表两个人)

这里看一下合并后的状态:

日志查询以下 提交信息:git log --graph  --pretty=oneline --abbrev-commit 

注:这里会显示很多之前的操作,这里我只截取了我们分支合并操作的日志

这个日志怎么看,图解一下给友友们看

合并也合并完了,现在可以删除到dev1分支了

5.6、分支管理策略

前面我们进行的合并分支都是采用Fast forward模式,这是默认的,这个默认合并方法有一点不友好就是,删除分支后,查看分支历史时,会丢掉分支信息,看不出来最新提交的到底是merge进来的还是正常提交的(这么说的原因就是:合并冲突的时候,我们手动修改后会再次进行提交)

刚刚的日志友友们也看见了

这里演示强制禁用Fast forward模式,那就需要重新提交一次

强制禁用Fast forward模式合并命令: git merge --no-ff  -m "日志" 分支名

前置合并操作已经执行结束,下面来看日志打印:

提示:这里确实看着太明显,这里直接说结论:禁⽤ Fast forward 模式后合并会创建⼀个新的 commit ,所以加上 -m 参数,把描述写进去(这就是为啥我们能看见原因)

在合并分⽀时,加上 --no-ff 参数就可以⽤普通模式合并,合并后的历史有分⽀,能看出来曾
经做过合并,⽽ fast forward 合并就看不出来曾经做过合并

5.6.1、分支策略

分支就是为了控制版本的,多人合作,每个人都有自己的分支,时不时地往dev分支上合并就可以了(master分支为主分支,dev开发分支,michael自己的分支)

5.7、bug分支

假如我们现在正在dev2 分⽀上进⾏开发,开发到⼀半,突然发现 master 分⽀上⾯有bug,需要解决。在Git中,每个bug都可以通过⼀个新的临时分⽀来修复,修复后,合并分⽀,然后将临时分⽀删除

6、远程操作

我们日常都是为了进行模块化操作的也就是各自干各自的事情,远程仓库就是为了便利操作项目时的所有使用者,针对这个“服务器”肯定是24小时都在运行的,便于我们拿去第一手资料和推送第一手资料,运行git的服务器是可以我们自己搭建的,当前能拿现成的肯定是不会去自己搭建的,github不就是嘛,一个森罗万象的网络,github是国外网站,访问速度比较慢,这里就使用gitee来进行代码托管,创建一个进行git测试的仓库

6.1、创建远程仓库

那就从建仓库开始一步一步来,按着提示来就行

注:这里只能选择私有,创建后可以再管理处设置为公有(空仓库不能设置为公有)

这里就拿私有来展示效果,友友们想的话可以设置为公有

6.2、克隆远程仓库

创建仓库后点击创建的仓库,可以看见对对应仓库路径,克隆到本地

注:我这里就创建一个gitremote的目录,进行克隆,克隆的就是我们创建的仓库(命名就是参控仓库名)

克隆命令:git clone 远程仓库路径   (这里选择的是http路径进行复制的,需要输入用户和密码)

用户就是@后面内容;密码就是登录密码

查看一下远程仓库的名称

查看远程仓库命令:git remote

查看远程仓库详细命令:git  remote -v

6.3、向远程仓库推送

本地要有新的文件才能向远程仓库进行推送,这里创建文件-》写文件-》文件推送

在这里之前再次提起 绑定信息,我们之前绑定过的,就是用户和邮箱,如果绑定不对的话,就推送不了

设置用户命令:git config [--global] user.name "请输入你的用户名"   (就是gitee上的用户名)

设置邮箱命令:git config [--global] user.email "请输入你的邮箱"

有邮箱在这里(如果这里有的话,直接复制就行)

本地创建的文件,要先进行添加并提交到版本库中,然后再进行推送

推送命令: git push <远程主机名>  <本地分支名>:<远程分支名>

如果本地分⽀名与远程分⽀名相同,则可以省略冒号:

推送命令:git push <远程主机名>  <本地分支名>

注:不知道当前分支是什么;使用命令:git branch (当前分支进行查询)

看一下远程仓库:(本来可是什么都没有的)

6.4、拉取远程仓库

这里我们就在file.txt中修改下内容后,进行拉取下来

这里file.txt文件,我们就添加一行hello git

远程仓库是要领取于本地仓库一个版本,为了使本地仓库保持最新版本,这是我们需要拉取远端代码合并到本地

拉取命令:git pull <远程主机名> <远程分支名>:<本地分支名>

如果远程分支是与当前分支合并,则冒号后面的部分可以省略

拉取命令:git pull <远程主机名> <远程分支名>

注:当前我们已经存在文件了,内容不为空现在可以将仓库设置为公有的

6.5、配置Git

6.5.1、忽略特殊文件

在创建库的时候,还有很多的设置,如果没有开启,可以在工作区开启

这里我再次克隆,因为前面把仓库删了(这次是因为有内容,克隆路径需要点击进行,这里可选路径也很多,这次我们采取的HTTPS,进行克隆)

进行克隆操作

克隆命令:git clone (复制过来的HTTPS路径)

我仓库的名字叫test-Git克隆过来后就都是小写一个test-git文件(仓库)

在工作区创建文件是文件会生成但是git是不会提示的,当前不需要git提交给版本库

但是有些文件你虽然过滤掉了但是你还想添加给远程,此时可以强行添加,如果我们之前添加错了文件格式,那现在可以检查了

检查命令:git check-ignore -v 文件

强行提交:git add -f 文件名

刷新一下gitee上的仓库就不难看到(a.so文件已经被推送上去了)

7、标签管理

commit最后一次提交是一次完结,也是具有里程碑意义的,但是为了方便管理标签就比较友好的做到这一点,每次commit最后一次都可以进行“打标签” 表示一个版本(commit id 是不那么好记住的)

7.1、创建标签

打标签命令:git tag 标签

产看标签命令:git tag 

给指定的commit id 进行打标签

注:这里的颜色提示是Ubuntu系统初识的设置,Centos7是不显示的,但是可以自己去设置

7.2、删除标签

删除标签的命令:git tag -d 标签

假如这里的v0.9标签打错了:进行删除(就是添加一个 -d 选项 比较简单就不在做解释)

7.3、标签推送到远程

推送命令:git push origin 标签

远程仓库内容:(刷新后可见)

8、扩展

gitee上创建一个分支,本地把分支拉下来,看看仓库都有那些分支

创建gitee分支

现在开始拉取分支

8.1、拉取远程仓库

涉及命令:

查看远程仓库命令:git branch -r  (这里的查询不会实时更新,所以有可能仓库已删或者新增)

拉取命令:git pull  (拉取的是远程仓库,不是本地仓库就有的)

创建并连接远程仓库: git checkout -b 本地分支名称 远程仓库/远程分支

拉取命令

8.2、删除远程仓库

远程仓库分支已经消失后,本地查看远程仓库分支是还是存在的

这里先删除远程仓库分支dev

删除刷新后就已经没有dev分支了

涉及命令:

查看本地和远程所有分支命令:git branh -a

查看本地与远程对应分支命令:git remote show origin 

删除本地存储远程删除的分支:git remote prune origin

本地分支与远程分支对应:

删除本地对应远程仓库已经删除的分支

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

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

相关文章

网络编程——基础知识

全文目录 网络发展协议OSI七层模型TCP/IP五层(或四层)模型 网络传输网络地址IP地址MAC地址 网络通信的本质 网络发展 网络没有出来之前计算机都是相互独立的&#xff1a; 网络就是将独立的计算机连接在一起&#xff0c;局域网和广域网的区别只是范围上的大小&#xff1a; 局域…

go语言基础--面向对象杂谈

面向过程 所谓的面向过程就是&#xff1a;强调的是步骤、过程、每一步都是自己亲自去实现的。 面向对象 所谓的面向对象其实就是找一个专门做这个事的人来做&#xff0c;不用关心具体怎么实现的。 所以说&#xff0c;面向过程强调的是过程&#xff0c;步骤。而面向对象强调的…

多线程中的Semaphore信号量

在Java多线程编程中&#xff0c;Semaphore是一种用于控制资源访问的机制。Semaphore允许您限制同时访问某个资源的线程数量。这在需要限制并发访问的情况下非常有用&#xff0c;例如数据库连接池或有限数量的线程池。 创建Semaphore 要使用Semaphore&#xff0c;首先需要创建…

解锁汽车自动驾驶的密码:L0到L5六个等级全解析

引言 随着智能网联汽车技术的快速发展,自动驾驶已成为汽车产业发展的重要方向。根据国际公认的标准,汽车自动驾驶可分为六个等级:L0级到L5级,等级越高意味着自动化程度越高。那么这六个等级具体有何区别呢?本文将详细介绍汽车自动驾驶的六个等级标准。 自动驾驶的6个等级(L0-…

Digger PRO - Voxel enhanced terrains

资源链接在文末 Digger PRO​​​ 是一个简单但强大的工具,可以直接从 Unity 编辑器或游戏中创建天然洞穴和悬岩。会让你感觉自己手中握有一个体素地形,且毫无瑕疵。它实际上保持着最新、最快且可靠的 Unity 地形系统,并在你需要的地方无缝创建洞穴/悬岩峭壁网格。Digger 内…

pr为什么要remove assign?

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 assign命令让几个连接在一起的port写网表的时候也连在一起&#xff0c;这就会导致LVS的时候不同的port&#xff08;不同的label&#xff09;&#xff0c;接了一样的net&#xf…

leetcode 817. 链表组件(java)

链表组件 题目描述HashSet 模拟 题目描述 给定链表头结点 head&#xff0c;该链表上的每个结点都有一个 唯一的整型值 。同时给定列表 nums&#xff0c;该列表是上述链表中整型值的一个子集。 返回列表 nums 中组件的个数&#xff0c;这里对组件的定义为&#xff1a;链表中一段…

我学编程全靠B站了,真香(第二期)

你好&#xff0c;我是Martin。 上次给大家推荐了不少B站上的好视频&#xff0c;看得出来还是有不少B站大学的校友的&#xff0c;哈哈哈。 本来说这期给大家接着推荐我收藏和看过的国外视频的&#xff0c;上篇文章下有朋友留言说想要看点Go语言的视频。 我就合计着这期就把Pyth…

酷开系统带你解锁假期居家的正确“姿势”!

在难得的周末假期中&#xff0c;你是否也希望自己的生活变得更加多彩呢&#xff1f;在闲暇时间里&#xff0c;你是否计划好了如何度过&#xff1f;小朋友们自然希望能够有父母陪伴在身边&#xff0c;而大朋友们也希望能给这个时节留下不一样的回忆。不论你对生活的期待是什么&a…

网站发布到谷歌 被谷歌收录

1.robote.txt 以下是个最简单的模板 肯定不出错 User-agent: * Disallow: /backend/ Disallow: /app/ Disallow: /asyn/ Disallow: /weixinmp/ 2.生成sitemap.XML Sitemap Details - XML Sitemaps Generator 3.meta信息 在谷歌https://search.google.com/里申请 <meta na…

较难理解的字符串查找算法KMP

时间复杂度O(n)的子串查找算法。 经典实例 主字符串(s)&#xff1a;abcabcabd 模式串(t)&#xff1a;abcabd 比较次数 主字符串 模式串 备注 一 abcabcabd abcabd 红色和绿色表示正在比较的子串&#xff0c;红色表示不同部分&#xff0c;绿色表示相同部分。…

知识联合——函数指针数组

前言&#xff1a;小伙伴们又见面啦&#xff0c;今天我们来讲解一个将函数&#xff0c;指针&#xff0c;数组这三个C语言大将整合在一起的知识——函数指针数组。同时来告诉小伙伴们我们上一篇文章的伏笔——函数指针的具体用法。 目录 一.什么是函数指针数组 二.函数指针数组…

【Java】全套云HIS(医院信息管理系统)源码包含EMR、LIS

云HIS系统简介 SaaS模式Java版云HIS系统源码&#xff0c;在公立二甲医院应用三年&#xff0c;经过多年持续优化和打磨&#xff0c;系统运行稳定、功能齐全&#xff0c;界面布局合理、操作简便。 1、融合B/S版电子病历系统&#xff0c;支持电子病历四级&#xff0c;HIS与电子病…

linux下centos7升级python版本

由于项目需要使用爬虫&#xff0c;爬虫框架支撑3.8以上版本。而linux自带的python版本是2.7.*&#xff0c;所以需要升级python版本至3.8 键脚本安装Python3.6-Python3.10 bash <(curl -sSL https://raw.githubusercontent.com/midoks/choose-linux-python/main/install.sh…

MySql入门到精通,优化,

Mysql概述 1.数据库相关概念 1.数据库&#xff1a;数据存储的仓库 2.数据库管理系统&#xff1a;操作和管理数据库的大型软件。&#xff08;DBMS&#xff09; 3.SQL&#xff1a;操作关系型数据库的编程语言&#xff0c;是一套标准。 都要使用SQL操作语言&#xff08;统一标准…

左神高级进阶班3(TreeMap顺序表记录线性数据的使用, 滑动窗口的使用,前缀和记录结构, 可能性的舍弃)

目录 【案例1】 【题目描述】 【思路解析】 【代码实现】 【案例2】 【题目描述】 【思路解析】 【代码实现】 【案例3】 【题目描述】 【思路解析】 【代码实现】 【案例4】 【题目描述】 【思路解析】 【代码实现】 【案例1】 【题目描述】 【思路解析】 这里…

vue-cli init vue3

安装 cli npm i -g vue/cli4.5.13查看版本&#xff1a;vue -V升级版本&#xff1a;npm update -g vue/cli 初始化项目 vue create 项目名称 > - ? Please pick a preset:Default ([Vue 2] babel, eslint)Default (Vue 3) ([Vue 3] babel, eslint) > Manually selec…

什么是HTML5中的Web存储API,包括LocalStorage和SessionStorage?它们的区别是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ Web存储API和区别⭐ LocalStorage&#xff08;本地存储&#xff09;⭐ SessionStorage&#xff08;会话存储&#xff09;⭐ 区别⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff0…

HTTP状态码301(永久重定向)不同Web服务器的配置方法

文章目录 301状态码通常在那些情况下使用301永久重定向配置Nginx配置301永久重定向Windows配置IIS301永久重定向PHP下的301重定向Apache服务器实现301重定向 301重定向是否违反相关法规&#xff1f;推荐阅读 当用户或搜索引擎向服务器发出浏览请求时&#xff0c;服务器返回的HT…

腾讯轻联:带你创造属于自己的AI小助手

陈老老老板&#x1f934; &#x1f9d9;‍♂️本文专栏&#xff1a;生活&#xff08;主要讲一下自己生活相关的内容&#xff09;生活就像海洋,只有意志坚强的人,才能到达彼岸。 &#x1f9d9;‍♂️本文简述&#xff1a;参加腾讯全球数字生态大会&#xff0c;了解到腾讯轻联企业…