git_笔记

news2024/10/6 6:43:07

git

学习视频

【【狂神说Java】Git最新教程通俗易懂】 https://www.bilibili.com/video/BV1FE411P7B3/?p=10&share_source=copy_web&vd_source=271b4386fd06dbbfd6504cf65bb85f31

git的下载与安装

git官网: https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
在这里插入图片描述

git镜像网址: https://registry.npmmirror.com/binary.html?path=git-for-windows/

在这里插入图片描述

建议下载 .exe安装包直接无脑下一步下载

启动git

Git Bash:Unix与Linux风格的命令行,使用的最多,推荐

Git CMD:windows风格的命令行

Git GUI:图形界面的Git,不建议使用

在这里插入图片描述

git中的Linux基本命令

cd		改变目录
cd..	回退到上一个目录,直接cd进入默认目录
pwd		显示当前所在的目录路径
ls		列出当前目录中的所有文件
touch	新建一个文件,如touch index.js就会在当前目录下新建一个index.js文件
rm		删除一个文件,如rm index.js就会把当前目录下的index.js文件删除
mkdir	新建一个目录,即新建一个文件夹
rm -r	删除一个文件夹,rm -r src 删除src目录
mv		移动文件,mv index.html src index.html是要移动的文件,src是目标文件夹
reset	重新初始化终端/清屏
clear	清屏
history 查看命令历史
help	帮助
table	自动补全命令
#		表示注释

git配置

所有的配置文件都保存在本地,一般都保存在C盘

查看配置

git config -l

查看全局配置

git config --global --list

D:\VSCode\Microsoft VS Code\bin\code 则是配置文件的目录

显示的是用户名和email不显示密码

在这里插入图片描述

设置用户名与邮箱(用户表示,非常必要)

在Git Bash命令窗口中设置

git config --global user.name "JiaQi"	#"填写名字"
git config --global user.email 2900209219@qq.com	#填写邮箱

在gitee上创建一个项目

示例 https://blog.csdn.net/qq_46311811/article/details/122264266

SSH 公钥设置

官网示例 https://help.gitee.com/base/account/SSH%E5%85%AC%E9%92%A5%E8%AE%BE%E7%BD%AE

git连接Gitee(码云)的环境配置及使用方法

CSDN网友示例 https://blog.csdn.net/weixin_43736652/article/details/116028009

1.生成公钥

# 进入 c:\Users\Administrator\.ssh 目录
# 在git中生成公钥 #-t rsa 加密算法,具体步骤略
ssh-keygen -t rsa

2.注册到Gitee

在这里插入图片描述
在这里插入图片描述

3.Gitee上新建一个仓库

在这里插入图片描述

许可证:开源是否可以随意转载,开源但不能商用,不能转载,相当于搞一堆限制

git基本理论(核心)

工作区

git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:

在这里插入图片描述

  • Workspace:工作区,就是平时存放项目代码的地方
  • Index/Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里有你提交所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

本地的三个区域确切的说应该是git仓库中HEAD指向的版本:

在这里插入图片描述

  • Directory:使用git管理一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间
  • WorkSpace:需要通过git进行版本控制的目录和文件,这些目录和文件组成了工作空间
  • .git:存放git管理信息的目录,初始化仓库的时候自动创建
  • Index/Stage:暂存区,在提交进入Local Repo之前,我们可以把所有的更新放在暂存区
  • Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)
  • Stash:隐藏,是一个工作状态保存站,用于保存、恢复WorkSpace中的临时状态

工作流程

git的工作流程一般是这样的

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区的文件提交到git仓库

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

git项目搭建

创建工作目录与常用指令

工作目录(WorkSpace)一般就是你希望git帮助你管理的文件夹,可以是项目目录,也可以是一个空目录,建议不要有中文

日常使用只要记住下图的6个命令

在这里插入图片描述

创建git代码库

1、创建全新的仓库,需要git管理的项目的根目录执行:

#在当前目录新建一个git代码库,
$ git init

.git文件夹是一个隐藏目录

在这里插入图片描述

克隆远程仓库

2、另一种方式是克隆远程目录,由于是将远程服务器(gitee)上的仓库完全镜像一份本地

#克隆一个项目和他的整个代码历史(版本信息)
$ git clone [url]

例如下列命令直接克隆git@gitee.com:cxyax/WeChatComputer-roomMaintenance.git的项目到~/Desktop/git-test文件夹中

在这里插入图片描述
在这里插入图片描述

git文件操作

文件4中操作

  • Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制。通过git add状态变为staged
  • Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致。这种类型的文件有两种去处,如果它被修改,而改变为Modified。如果使用git rm移除版本库,则成为Untracked文件
  • Modified:文件已修改,仅仅是修改,并没进行其他的操作,这个文件也有两个去处,通过git add可进入暂存staged状态,使用git checkout则丢弃修改过,返回到unmodify状态,这个 git checkout即从库中取出文件,覆盖当前修改!
  • Staged:暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为unmodify状态,执行git reset HEAD filename取消暂存,文件状态为Modified

查看文件状态

#查看指定文件状态
git status [filename]

#查看所有文件状态
git status

#添加所有文件到暂存区
git add .

# 提交暂存区中的内容到本地仓库 -m 提交信息
git commit -m	"消息内容"

在这里插入图片描述

忽略文件

前端的项目总 npm_moudles千万不要打包进去

在这里插入图片描述

后端的一些本地仓库的jar包不需要提交

有时候不想把某些文件纳入版本控制,比如数据库文件、临时文件、设计文件等

在主目录下建立".gitignore",此文件有如下规则:

  1. 忽略文件中的空行以井号(#)开始的行会将被忽略
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号(!),表示列外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的的是此目录下该名称的子目录,而非文件(默认文件或者目录都忽略)。
*.txt		#忽略所有 .txt结尾的文件
!lib.txt	#但lib.txt除外
/temp		#仅忽略项目根目录下的TODO文件,不包括其他目录temp
build/		#忽略build/目录下的所有文件
doc/*.txt	#会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

例如下图(狂神说Java的git限制模板)

在这里插入图片描述
在这里插入图片描述

IDAE中集成git

(1、是我自己的操作,图一乐就行别当真,直接看2、)

1、创建项目是直接点git仓库

在这里插入图片描述

知识点:

snapshot是工程版本上的概念,表示快照版本,也就是相对稳定版本,但是会再进行改进,最好不要用于生产环境,在生产环境,应当选择release(发布版本)。

其他相关版本含义:

  • Alpha:内测版,BUG多,开发人员开发过程中使用,希腊字母α,第一,指最初版
  • Beta:早期版本,有缺陷,没有严重BUG,可能加入新功能,进一步开发完善
  • Gamma: 经Beta 版,完善修改,成为正式发布的候选版本(Release Candidate)
  • RC:(Release Candidate):候选版本,几乎就是正式版了
  • GA:(Ggeneral Availability):发行稳定版,官方推荐使用此版本
  • R,RELEASE:正式版,等价于GA

在这里插入图片描述

创建项目后等待依赖加载完成(这里的第三点是添加到缓存区按钮,带个小锁的才是上传至Gitee仓库按钮)

在这里插入图片描述

跳出以下弹窗

在这里插入图片描述

出现了以下报错!!!!

5:46:13.996: [git-demo-01] git -c credential.helper= -c core.quotepath=false -c log.showSignature=false init
Initialized empty Git repository in E:/java_study/019-RuoYi/git-study/git-demo-01/.git/
15:46:17.336: [git-demo-01] git -c credential.helper= -c core.quotepath=false -c log.showSignature=false add --ignore-errors -A -- .
warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of '.mvn/wrapper/maven-wrapper.properties', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'mvnw', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'mvnw.cmd', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'pom.xml', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'src/main/java/com/jiaqi/gitdemo01/GitDemo01Application.java', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'src/main/resources/application.properties', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'src/test/java/com/jiaqi/gitdemo01/GitDemo01ApplicationTests.java', LF will be replaced by CRLF the next time Git touches it
16:04:41.961: [git-demo-01] git -c credential.helper= -c core.quotepath=false -c log.showSignature=false add --ignore-errors -A -f -- mvnw .mvn/wrapper/maven-wrapper.jar .gitignore mvnw.cmd pom.xml .mvn/wrapper/maven-wrapper.properties src/main/java/com/jiaqi/gitdemo01/GitDemo01Application.java src/main/resources/application.properties src/test/java/com/jiaqi/gitdemo01/GitDemo01ApplicationTests.java
warning: in the working copy of 'pom.xml', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'src/main/java/com/jiaqi/gitdemo01/GitDemo01Application.java', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'src/test/java/com/jiaqi/gitdemo01/GitDemo01ApplicationTests.java', LF will be replaced by CRLF the next time Git touches it
16:04:42.076: [git-demo-01] git -c credential.helper= -c core.quotepath=false -c log.showSignature=false commit -F C:\Users\1900\AppData\Local\Temp\git-commit-msg-.txt --author=甲柒 --
fatal: --author '甲柒' is not 'Name <email>' and matches no existing author

上述警告信息不用管,重新上传时不选author

再次点击提交

在这里插入图片描述

可以看到上传成功了~~~

现在去Gitee上看看

上传失败了!!!!

16:10:08.703: [git-demo-01] git -c credential.helper= -c core.quotepath=false -c log.showSignature=false add --ignore-errors -A -f -- mvnw .mvn/wrapper/maven-wrapper.jar .gitignore mvnw.cmd pom.xml .mvn/wrapper/maven-wrapper.properties src/main/java/com/jiaqi/gitdemo01/GitDemo01Application.java src/main/resources/application.properties src/test/java/com/jiaqi/gitdemo01/GitDemo01ApplicationTests.java
16:10:08.778: [git-demo-01] git -c credential.helper= -c core.quotepath=false -c log.showSignature=false commit -F C:\Users\1900\AppData\Local\Temp\git-commit-msg-.txt --
[master (root-commit) 6096f74] 测试上传到Gitee仓库
 9 files changed, 665 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 .mvn/wrapper/maven-wrapper.jar
 create mode 100644 .mvn/wrapper/maven-wrapper.properties
 create mode 100644 mvnw
 create mode 100644 mvnw.cmd
 create mode 100644 pom.xml
 create mode 100644 src/main/java/com/jiaqi/gitdemo01/GitDemo01Application.java
 create mode 100644 src/main/resources/application.properties
 create mode 100644 src/test/java/com/jiaqi/gitdemo01/GitDemo01ApplicationTests.java

文心一言的回答

上述代码中并没有包含远程仓库的地址。这是Git命令行的一些操作,它首先添加了一些文件到暂存区,然后提交了这些更改,但并未指定将这些更改推送到哪个远程仓库。

如果你想将更改推送到远程仓库,你需要使用 git push 命令,这通常需要知道远程仓库的地址。例如,如果你有一个名为 “origin” 的远程仓库,你可以使用以下命令推送更改:

git push origin master

在上述命令中,“origin” 是远程仓库的名称,“master” 是你想要推送的分支。如果你不知道远程仓库的地址,你可能需要先使用 git remote -v 命令查看你的远程仓库设置。

在这里插入图片描述

发现没有绑定远程仓库的地址,算了先去看狂神的视频

2、项目绑定git(狂神说版本)

创建项目时不选git仓库

在这里插入图片描述

随便选一个

在这里插入图片描述

我创建完成是这个样子的

在这里插入图片描述
git clone 我的gitee仓库中的项目

在这里插入图片描述

电脑的该文件夹下克隆成功

在这里插入图片描述

将上面三个文件复制到E:\java_study\019-RuoYi\git-study\git-demo-02

直接替换原有文件即可

在这里插入图片描述

IDEA中是这样的

在这里插入图片描述

可以看到git日志

在这里插入图片描述

再次git add.

在这里插入图片描述

现在是添加到暂存区了

在这里插入图片描述

然后点击推送按钮

在这里插入图片描述

第一次推送会出现连接密码,填写之前创建密钥的密码即可

在这里插入图片描述

可以看到我已经推送成功了

在这里插入图片描述

现在去Gitee上看一下,成功了~~~

在这里插入图片描述

3、修改文件,使用IDEA操作git(核心步骤)

  • 添加到暂存区
  • commit提交
  • push到远程仓库

4、提交测试

在这里插入图片描述

提交成功~~~

在这里插入图片描述

说明:git分支(多人开发)

分支在git中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,我们就需要处理一些问题了!

在这里插入图片描述

git分支中常用指令:

# 列出所有本地分支
git branch

# 列出所有远程分支
git branch -r

# 新建一个分支,但依然停留在当前分支
git branch [branch-name]

# 新建一个分支,并切换到该分支
git checkout -b [branch]

# 合并指定分支到当前分支
$ git merge [branch]

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

定义多个分支如果并行执行,就会导致代码不冲突,也就是多个版本!!

这个由于无法测试,就不测试了,哈哈哈哈~~~

多个分支如果并行执行,就会导致我们代码不冲突,也就是同时存在多个版本!

web-api -A(Restful.xx())

web-admin -B 会调用A(修改了A的代码!)

web-app -C 会调用B和A的代码

如果了冲突了就需要协商即可!

如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交选择要保留他的代码还是你的代码!

master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。

git的帮助页面

1900@DESKTOP-694C4A9 MINGW64 /e/java_study/019-RuoYi/git-study/Git-XueXi/git-study02 (master)
$ git --help
usage: git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           [--config-env=<name>=<envvar>] <command> [<args>]

These are common Git commands used in various situations:

start a working area (see also: git help tutorial)
   clone     Clone a repository into a new directory
   init      Create an empty Git repository or reinitialize an existing one

work on the current change (see also: git help everyday)
   add       Add file contents to the index
   mv        Move or rename a file, a directory, or a symlink
   restore   Restore working tree files
   rm        Remove files from the working tree and from the index

examine the history and state (see also: git help revisions)
   bisect    Use binary search to find the commit that introduced a bug
   diff      Show changes between commits, commit and working tree, etc
   grep      Print lines matching a pattern
   log       Show commit logs
   show      Show various types of objects
   status    Show the working tree status

grow, mark and tweak your common history
   branch    List, create, or delete branches
   commit    Record changes to the repository
   merge     Join two or more development histories together
   rebase    Reapply commits on top of another base tip
   reset     Reset current HEAD to the specified state
   switch    Switch branches
   tag       Create, list, delete or verify a tag object signed with GPG

collaborate (see also: git help workflows)
   fetch     Download objects and refs from another repository
   pull      Fetch from and integrate with another repository or a local branch
   push      Update remote refs along with associated objects

'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
See 'git help git' for an overview of the system.

官网的git大全:https://gitee.com/all-about-git

官网的git学习:https://oschina.gitee.io/learn-git-branching/

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

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

相关文章

MATLAB关于线性优化和整数线性优化

1.线性优化 x linprog(f,A,b,Aeq,beq,ub.lb) A&#xff0c;b是不等式约束Ax<b中的矩阵A与向量b&#xff0c; Aeq&#xff0c;beq是等式约束中的矩阵Aeq与向量beq&#xff0c; ub&#xff0c;lb是决策变量上下界 2.混合整数线性优化函数 x intlinprog(f,intcon,A,b,Aeq,beq…

【数据结构】面试OJ题——时间复杂度

目录 一&#xff1a;旋转数组 思路&#xff1a; 二&#xff1a;消失的数字 思路&#xff1a; 一&#xff1a;旋转数组 189. 轮转数组 - 力扣&#xff08;LeetCode&#xff09; 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负…

模板(进阶)

文章目录 1.非类型模板参数1.1 定义&#xff1a;1.2 应用&#xff1a; 2.模板特化&#xff08;特化必须原模版&#xff09;2.1类模板特化2.2 函数模板特化 3模板的分离编译3.1 什么是分离编译3.2模板不能实现分离编译的原因&#xff08;简&#xff09;&#xff1a;3.3解决方法实…

VBA技术资料MF72:利用函数判断文件及工作表存在

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

初始c++(2)

目录 目录&#xff1a; 1. 引用 2. 内联函数inline 3.auto关键字(大概的认识) 4.基于范围的for循环(c11) 5.nullptr(c11) 本章最重要的知识点其实是前两个(详细讲解),后面的大概只会介绍一下用法。 文章开始&#xff01;&#xff01;&#xff01;&#xff01; 1&#xff1a;引…

微信小程序授权登录介绍

目录 一. 小程序登录如何获取微信用户信息 二. 小程序微信授权登录示例 后台代码 小程序代码 效果展示 三. 微信emoji存储问题 一. 小程序登录如何获取微信用户信息 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识&#xff0c;快速建立小程序内…

【ArcGIS模型构建器】01:模型构建器Model Builder介绍

文章目录 一、 空间建模概述1. 空间建模概述2. 空间建模步骤 二、Model Builder建模1. Model Builder基础2. Model Builder操作3. Model Builder高级进阶操作 一、 空间建模概述 1. 空间建模概述 空间建模的目的是解决与地理有关的问题&#xff0c;通常涉及多种空间分析操作的…

100097. 合法分组的最少组数

给你一个长度为 n 下标从 0 开始的整数数组 nums 。 我们想将下标进行分组&#xff0c;使得 [0, n - 1] 内所有下标 i 都 恰好 被分到其中一组。 如果以下条件成立&#xff0c;我们说这个分组方案是合法的&#xff1a; 对于每个组 g &#xff0c;同一组内所有下标在 nums 中…

一天吃透Java面试题

给大家分享我整理的Java高频面试题&#xff0c;有小伙伴靠他拿到字节offer了。 Java基础面试题 Java的特点Java 与 C 的区别JDK/JRE/JVM三者的关系Java程序是编译执行还是解释执行&#xff1f;面向对象和面向过程的区别&#xff1f;面向对象有哪些特性&#xff1f;数组到底是…

代码最佳实践和指南(一)

创建代码是许多数据专业的重要组成部分。但是&#xff0c;创建可以运行的代码只是工作的一半。代码还需要清晰&#xff0c;易于传递&#xff0c;并且对干扰具有鲁棒性。通过在项目中遵循一些编码准则&#xff0c;您可以保存自己以后重新构造代码的时间&#xff0c;并使您的合作…

(完全解决)如何输入一个图的权重,然后使用sklearn进行谱聚类

文章目录 背景输入点直接输入邻接矩阵 背景 网上倒是有一些关于使用sklearn进行谱聚类的教程&#xff0c;但是这些教程的输入都是一些点的集合&#xff0c;然后根据谱聚类的原理&#xff0c;其会每两个点计算一次亲密度&#xff08;可以认为两个点距离越大&#xff0c;亲密度越…

知识分享|分段函数线性化及matlab测试

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all; gn10;tn1; x_pfsdpvar(1, t…

为什么短信验证码要设置有效期?

安全性&#xff1a;验证码的主要目的是为了验证用户的身份&#xff0c;防止恶意或未经授权的访问。如果验证码没有有效期&#xff0c;恶意用户或攻击者可以获取验证码后无限期地尝试使用它。通过设置有效期&#xff0c;可以限制验证码的生命周期&#xff0c;提高系统的安全性。…

Selenium的find_element()与find_elements()和By的几种方法

打印索引元素的文本属性 def print_list(coordinate_list):print(当前项目地块数&#xff1a;, len(coordinate_list))for i in range(0, len(coordinate_list)):print(i)print(coordinate_list[i].text)看一下By支持的方法 class By:"""Set of supported loc…

02-HotSpot 虚拟机对象探秘

HotSpot 虚拟机对象探秘 对象的内存布局 在 HotSpot 虚拟机中&#xff0c;对象的内存布局分为以下 3 块区域&#xff1a; 对象头&#xff08;Header&#xff09;实例数据&#xff08;Instance Data&#xff09;对齐填充&#xff08;Padding&#xff09; 对象头 对象头记录…

基于ResNet34的花朵分类

一.数据集准备 新建一个项目文件夹ResNet&#xff0c;并在里面建立data_set文件夹用来保存数据集&#xff0c;在data_set文件夹下创建新文件夹"flower_data"&#xff0c;点击链接下载花分类数据集https://storage.googleapis.com/download.tensorflow.org/example_i…

localforage-本地存储的优化方案

前言 前端本地化存储算是一个老生常谈的话题了&#xff0c;我们对于 cookies、Web Storage&#xff08;sessionStorage、localStorage&#xff09;的使用已经非常熟悉&#xff0c;在面试与实际操作之中也会经常遇到相关的问题&#xff0c;但这些本地化存储的方式还存在一些缺陷…

【CSS】BFC 块级格式化上下文

1. 块级格式化上下文&#xff08;BFC&#xff09; 它是一块独立的渲染区域&#xff0c;规定该区域内&#xff0c;常规流块盒的布局。 先来说一下常规流块盒&#xff1a; 常规流块盒在水平方向上&#xff0c;必须盛满包含块常规流块盒在包含块的垂直方向上依次摆放常规流块盒…

「我的AIGC咒语库:分享和AI对话交流的秘诀——如何利用Prompt和AI进行高效交流?」

文章目录 每日一句正能量前言基础介绍什么是Prompt?什么是 Prompt Engineering&#xff1f;为什么需要 Prompt Engineering&#xff1f;如何进行 Prompt Engineering&#xff1f;Prompt的基本原则Prompt的编写模式AI 可以帮助程序员做什么&#xff1f;技术知识总结拆解任务阅读…

2022年全国部分省市跨境电商交易规模汇总

近年来&#xff0c;跨境电商发展迅速&#xff0c;国家陆续出台了相关支持政策&#xff0c;跨境电商优势和潜力有望进一步释放。海关总署数据&#xff0c;根据初步测算&#xff0c;2022年我国跨境电商进出口2.11万亿元&#xff0c;增长9.8%。其中&#xff0c;出口1.55万亿元&…