Git使用【上】

在这里插入图片描述

欢迎来到Cefler的博客😁
🕌博客主页:那个传说中的man的主页
🏠个人专栏:题目解析
🌎推荐文章:题目大解析3

在这里插入图片描述


前言
先前有些git命令我在我的其它文章里面已经写过,若要查看可参考【Linux】环境基础开发工具使用,这篇文章不再概述其中的一些命令


目录

  • 👉🏻git 命令
    • git config
    • git diff
    • git log
      • SHA-1 校验和
  • 👉🏻git怎么进行分布式管理?
    • 🌈认识工作区、暂存区和版本库
  • 👉🏻版本回退
    • 概念
    • 当前版本HEAD指的是版本库中的当前版本,还是工作区或暂存区的当前版本?
    • git reset命令
    • git reflog 在版本回退中的作用
    • git版本回退为什么那么快?
  • 👉🏻撤销修改
    • 对于⼯作区的代码,还没有 add
    • 已经 add ,但没有 commit
    • 已经 add ,并且也 commit 了
  • 👉🏻删除文件

👉🏻git 命令

git config

当你使用Git进行版本控制时,git config是一个用于配置Git的命令。它允许你设置和查看与Git相关的配置选项,包括全局配置、仓库配置和用户配置等。

以下是git config命令的一些常见用法及其作用:

  1. 配置全局用户名和邮箱:
   git config --global user.name "Your Name"git config --global user.email "yourname@example.com"

这些配置用于标识你在Git中提交代码时的身份信息。

  1. 查看和修改配置:

    git config --list            // 列出当前所有的Git配置选项
    git config --global --edit   // 编辑全局配置文件
    git config --local --edit    // 编辑当前仓库的配置文件
    git config <key>             // 查看指定配置项的值
    git config <key> <value>     // 设置指定配置项的值
    

    --list选项用于列出所有配置选项及其值。--global选项表示对全局配置进行操作,--local选项表示对当前仓库的配置进行操作。你可以使用--edit选项来通过文本编辑器修改配置文件。

  2. 配置其他选项:

    git config --global core.editor "nano"   // 设置全局文本编辑器(默认为Vi)
    git config --global color.ui true        // 启用全局颜色输出
    

    除了用户名和邮箱外,你可以配置其他的Git选项来满足个人偏好和工作流程要求。上述示例中,我们设置了全局文本编辑器为nano,并启用了颜色输出。

需要注意的是,git config命令的配置选项有多个层级,优先级从高到低依次为:命令行参数(Command-line options) > 仓库级别配置文件(Repository-level configuration file) > 用户级别配置文件(User-level configuration file) > 系统级配置文件(System-level configuration file)。因此,如果针对同一个选项有多个配置设置,Git将使用优先级最高的那个。

4.取消配置

git config --unset 命令用于取消 Git 配置选项的设置,即从配置文件中移除指定的键值对。使用该命令需要提供相应配置选项的名称,例如 user.email

以下是一些常见的 git config --unset 命令的示例:

  • 取消全局 Git 配置文件中的用户名设置:

    git config --global --unset user.name
    
  • 取消当前 Git 仓库的配置文件中的用户名和邮箱地址设置:

    git config --unset user.name
    git config --unset user.email
    

需要注意的是,git config --unset 命令只会移除特定配置选项的键值对,而不会删除整个配置选项。如果需要删除某个配置选项,可以手动编辑配置文件,或者使用 --unset-all 参数来删除所有匹配选项。

git diff

git diff 是一个用于比较文件差异的 Git 命令。它可以用来查看工作区与暂存区之间或者暂存区与最新提交(HEAD)之间的文件差异。

下面是 git diff 命令的常见用法:

  1. 比较工作区与暂存区的差异:

    git diff
    

    这会显示工作区中未添加到暂存区的文件修改内容。

  2. 比较暂存区与最新提交(HEAD)的差异:

    git diff --cached
    

    这会显示已添加到暂存区但尚未提交的修改内容。

  3. 比较工作区与最新提交(HEAD)的差异:

    git diff HEAD
    

    这会显示自上次提交以来对文件所做的所有更改。

  4. 比较两个提交之间的差异:

    git diff <commit1> <commit2>
    

    这会显示两个提交之间所有文件的差异。

git diff 的输出中,以 - 表示被移除的行,以 + 表示新增的行。

除了上述常见用法外,git diff 命令还支持其他选项和参数,例如限制显示的文件范围、忽略空白字符等。你可以通过 git diff --help 查看详细的帮助信息。
在这里插入图片描述

git log

git log 是 Git 中一个常用的命令,可以显示当前分支的提交历史。它可以列出每个提交的 SHA-1 校验和作者日期提交信息等。

git log 命令的基础语法如下:

git log

该命令会按照提交时间的倒序列出当前分支的所有提交。

git log 命令还支持多种有用的选项。以下是一些常用的选项:

  • -n: 显示最近的 n 个提交(例如 git log -3 将显示最近的三个提交)。
  • --oneline: 用一行显示提交信息(包括 SHA-1 校验和和提交信息)。
  • --graph: 显示提交历史的 ASCII 图形化表示。
  • --all: 显示所有分支的提交历史。
  • --decorate: 显示分支和标签的名称。

除此之外,还有许多其他的选项和参数可以用于 git log 命令。你可以通过 git log --help 查看完整的帮助文档。

git log 命令对于查看提交历史非常有用。它可以让你了解每个提交的详细信息,方便你回溯版本、合并分支等操作。

git log --pretty=oneline 是 Git 中常用的一个命令,表示只显示每条提交记录的 SHA-1 校验和和提交信息,每条记录占用一行。在终端中使用该命令输出即将换行的时候,会将当前行显示为更简洁的形式。

请注意,在 --pretty 选项后面的等号和 oneline 之间不应有空格。

以下是一个示例:

$ git log --pretty=oneline
65246b8d9a6d7d865771d5e08a413d6c3a9ef2d8 Add new feature to the project
f69ad5fcff56a4eeccbc4dbdcfb37a1d22c7317d Fix a bug in the login feature
b6e4737df58135e56cdf9dbb16a87d81b40b0109 Initial commit

通过这个命令,你可以快速查看提交历史,快速了解每个提交的信息和变更内容,对于代码审核、版本回退等操作都非常方便。

SHA-1 校验和

SHA-1(Secure Hash Algorithm 1)是一种密码散列函数,用于产生数据的唯一标识。它可以将任意长度的数据转换为一个固定长度的哈希值,通常以40个十六进制字符(160位)表示。

SHA-1 校验和是通过对数据应用 SHA-1 算法得到的结果。它具有以下特点:

  1. 唯一性:不同的数据很难产生相同的 SHA-1 校验和。即使数据的微小变化也会导致完全不同的校验和。
  2. 不可逆性:从 SHA-1 校验和无法还原出原始数据。换句话说,无法通过校验和推导出原始的数据内容。
  3. 固定长度:SHA-1 校验和的长度固定为40个字符,不管原始数据的大小。

在版本控制系统(如 Git)中,SHA-1 校验和被广泛应用于唯一标识提交对象、文件快照等。通过校验和,可以准确地区分不同的提交或文件,并且可以检查数据的完整性。如果对数据进行了任何修改,SHA-1 校验和也会发生变化

需要注意的是,由于 SHA-1 已经存在安全漏洞,因此在某些安全敏感的场景中,已经不建议使用 SHA-1。较新的散列算法,如 SHA-256,提供更高的安全性。

👉🏻git怎么进行分布式管理?

🌈认识工作区、暂存区和版本库

当使用 Git 进行版本控制时,工作区、暂存区和版本库是三个重要的概念。

  1. 工作区(Working Directory):

    工作区是你的项目目录,是你编辑、修改文件的地方。在工作区中可以新增、删除、编辑文件,但这些变化不会直接记录到 Git 中。你可以将工作区比喻为普通的文件夹。

  2. 暂存区(Staging Area):

    暂存区是位于 Git 仓库中的一个特殊区域,它充当了一个缓冲区或者提前准备提交的区域,我们把暂存区有时也叫作索引(index)。在暂存区中,你可以选择要提交的文件、对文件进行部分修改,并通过 git add 命令将这些修改记录到暂存区。一旦文件被添加到暂存区,Git 就会跟踪这些修改。

  3. 版本库(Repository):

    版本库是 Git 的核心部分,其中记录了项目的完整历史信息。它保存着每个提交(commit),包括文件的更改、作者、时间等元数据。版本库通常位于项目目录的 .git 文件夹下,它包含了暂存区、分支、标签等信息,是 Git 来管理和维护项目历史的地方。

Git 的工作流程如下:

  1. 在工作区中对文件进行修改。
  2. 使用 git add 将修改的文件添加到暂存区。
  3. 使用 git commit 将暂存区的文件提交到版本库,形成一个新的提交记录。

通过将更改逐步从工作区移动到暂存区,再移动到版本库中,Git 可以准确地记录文件的变化历史,并允许用户灵活地管理和回溯项目的不同版本。

下面这张图展示了它们之间的关系:👇🏻👇🏻
在这里插入图片描述
在创建 Git 版本库时,Git 会为我们⾃动创建⼀个唯⼀的 master 分⽀,以及指向 master 的⼀个指针叫 HEAD。

当对⼯作区修改(或新增)的⽂件执⾏ git add 命令时,暂存区⽬录树的⽂件索引会被更新。

💫💫
add修改的工作区内容进入暂存库时,实际上,此时会有一个对象库生成一个新的git对象,专门指向刚才add提交在暂存库的内容的索引。

当执⾏提交操作git commit时,master 分⽀会做相应的更新,可以简单理解为暂存区的⽬录树才会被真正写到版本库中

我们用linux命令也可以查看当前git仓库下的目录👇🏻👇🏻
在这里插入图片描述

⭐️总结一下

通过新建或粘贴进⽬录的⽂件,并不能称之为向仓库中新增⽂件,⽽只是在⼯作区新增了⽂件。必须要通过使⽤ git add 和 git commit 命令才能将⽂件添加到本地仓库中进⾏管理

👉🏻版本回退

概念

Git 版本回退的原理主要涉及 Git 的分支、提交和引用的管理机制。

在 Git 中,每次提交都会生成一个唯一的提交对象(commit object),包含了当前文件状态的快照作者时间戳等信息。提交对象会以有向无环图(DAG)的形式组织起来,形成提交历史。

Git 使用分支(branch)来表示不同的开发路径,每个分支都指向一个提交对象。而 HEAD 则是当前分支的引用,指向最新的提交。通过移动 HEAD 和分支引用,可以实现版本回退

当执行 git reset 命令时,根据命令选项的不同,Git 会调整分支引用和 HEAD 的位置

  1. --soft 选项:
    参数对于⼯作区和暂存区的内容都不变,只是将版本库回退到某个指定版本。

  2. --mixed 选项:
    为默认选项,使⽤时可以不⽤带该参数。该参数将暂存区的内容退回为指定提交版本内容,⼯作区⽂件保持不变。

  3. --hard 选项:
    参数将暂存区与⼯作区都退回到指定版本。切记⼯作区有未提交的代码时不要⽤这个命令,因为⼯作区会回滚,你没有提交的代码就再也找不回了,所以使⽤该参数前⼀定要慎重。
    在这里插入图片描述

🌟HEAD说明

  • 可直接写成 commit id,表⽰指定退回的版本
  • HEAD 表示当前版本
  • HEAD^ 上⼀个版本
  • HEAD^^ 上上⼀个版本
  • 以此类推…

🌟可以使⽤ 〜数字表⽰

  • HEAD~0 表⽰当前版本
  • HEAD~1 上⼀个版本
  • HEAD^2 上上⼀个版本
  • 以此类推

总结起来,Git 版本回退的原理就是通过移动分支引用和 HEAD 来改变当前所处的提交位置,并相应地调整工作区和暂存区的状态。

需要注意的是,回退操作会修改提交历史,因此在团队协作或者远程仓库存在的情况下,谨慎使用版本回退功能。

当前版本HEAD指的是版本库中的当前版本,还是工作区或暂存区的当前版本?

HEAD 是 Git 中的一个指针,指向当前所在的分支或提交。它可以理解为对当前版本的引用。

具体来说,HEAD 指向的是当前所在分支的最新提交(即版本库中的当前版本)。当你进行提交操作时,HEAD 将会移动到新的提交上。

与 HEAD 相关的有两个概念需要注意:

  1. 工作区:工作区是你在电脑上看到和修改的项目目录。当你在工作区修改文件后,这些修改并没有被提交到版本库中。

  2. 暂存区:暂存区也称为索引(index),是位于工作区和版本库之间的一个中间区域。它用于暂存你想要提交的文件改动。

当你执行 git add 命令将文件添加到暂存区后,HEAD 的指向不会发生变化,仍然指向当前分支的最新提交。只有在执行 git commit 命令后,HEAD 才会移动到新的提交上,并且该提交成为当前分支的最新提交。

总结起来,HEAD 指向的是版本库中当前分支的最新提交,而不是工作区或暂存区的当前版本。工作区和暂存区的当前版本没有直接的指针,它们的状态是相对于最新提交来描述的。

git reset命令

git reset 是 Git 中一个重要的命令,用于移动 HEAD 和分支引用来撤销提交或将分支重置到不同的提交上。它有多种用法和选项,常用的包括 --soft--mixed--hard

下面是 git reset 命令的常见用法:

  1. 撤销最新的提交并保留修改:

    git reset --soft HEAD^
    

    这会将 HEAD(当前分支的引用)移动到上一个提交,同时保留修改的文件在暂存区中。这样你可以重新提交这些修改。

  2. 撤销最新的提交并取消暂存的修改:

    git reset --mixed HEAD^
    

    这会将 HEAD 移动到上一个提交,并取消暂存区的修改。工作区中的文件保持不变,你可以对这些文件进行新的提交或修改。

  3. 撤销最新的提交并丢弃修改:

    git reset --hard HEAD^
    

    这会完全移除最后一次提交及其修改。工作区、暂存区和版本库都将回退到上一个提交的状态。注意:此操作会丢失未提交的文件修改,慎用!

HEAD^ 表示上一个提交,可以使用 HEAD~n 来表示前 n 个提交。例如,HEAD~2 表示上两个提交。

除了上述常见用法外,git reset 命令还支持其他选项和参数,例如通过提交 ID 进行重置,指定分支名等。你可以通过 git reset --help 查看详细的帮助信息。

在使用 git reset 时,请务必小心操作。如果你不确定操作的影响,请备份后再执行。

git reflog 在版本回退中的作用

git reflog 是 Git 中一个非常有用的命令,用于查看本地仓库中的引用日志(reference log)。它记录了分支、标签或 HEAD 移动的历史,包括提交、合并、重置等操作。

在版本回退中,git reflog 的作用非常重要。当你使用 git resetgit revert 等命令回退版本时,可能会希望回到之前的某个状态。而此时,如果没有记录每次操作的信息,就很难恢复到之前的状态。

git reflog 可以显示你在本地仓库中执行的所有操作,并提供了每个操作的 HEAD 的位置和提交校验和(commit hash)。通过查看这些记录,你可以找到之前的提交状态,并进行版本回退。

以下是一个示例:

$ git reflog
65246b8 (HEAD -> master) HEAD@{0}: reset: going back to commit 65246b8
f69ad5f HEAD@{1}: commit: Add new feature to the project
b6e4737 HEAD@{2}: commit: Initial commit

在上面的示例中,你可以看到 HEAD@{0} 表示最近一次操作,即回退到的目标 commit。你可以根据需要选择特定的提交进行版本回退。

需要注意的是,git reflog 记录的是本地仓库的操作历史,而不是远程仓库的历史。如果你想查看远程仓库的历史记录,可以使用 git log 命令。

git版本回退为什么那么快?

Git 的版本回退速度⾮常快,因为 Git 在内部有个指向当前分⽀(此处是master)的HEAD 指针, refs/heads/master ⽂件⾥保存当前 master 分⽀最新 commit id 。当我们在回退版本的时候,Git 仅仅是给 refs/heads/master 中存储⼀个特定的version,可以简单理解成如下⽰意图:
在这里插入图片描述

👉🏻撤销修改

当我们写代码时,觉得当前写的代码太差劲,还不如上一版本时,我们怎么回到上一版本呢?
这里分三种情况。

对于⼯作区的代码,还没有 add

法一:先用git diff查看代码差别在哪,然后手动删除代码,但不推荐,如果我们写了很多代码了,再手动去删效率太慢。
法二
使用命令

git checkout --<filename>//回退到该文件上一次add的状态

已经 add ,但没有 commit

这里我们可以使用git reset -- mixed/hard.

  • git reset -- hard:可以一步完成,因为此时版本库中还没有我们刚刚add在暂存区中的代码,所以用hard版本回退,直接让工作区和暂存区的版本回退到版本库的当前版本(即没有该代码文件的时候),这样就实现了工作区的撤销代码效果
  • git reset -- mixed:这个要分两步完成,第一步git reset – mixed只是让暂存区回退到版本库的当前版本,但是此时我们仔细观察,现在情况变成了情况1——对于⼯作区的代码,还没有 add,所以此时我们再用git checkout --< filename>命令就可以撤销代码了

下面是指令实现:
在这里插入图片描述

已经 add ,并且也 commit 了

既然此时版本库的版本已经更新,那么只有回退到上一个版本才能解决问题。
所以这里我们就要用git reset --hard < filename>将版本库、暂存区、工作区的代码都回退到上一个版本的状态。
命令实现如下
在这里插入图片描述
注意:前提是commit之后没有push到远程仓库

👉🏻删除文件

在这里插入图片描述


如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长

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

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

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

相关文章

蓝桥杯每日一题2023.9.28

AcWing 4409. 砍竹子 - AcWing 题目描述 题目分析 注&#xff1a;sqrtl的范围为long double&#xff0c;比sqrt更加精确 使用优先队列维护一段区间&#xff0c;如果连续一段相同就合并为一个区间&#xff0c;从大到小去枚举&#xff0c;每次先取出最大的一段&#xff0c;双…

Ubuntu中启动HDFS后没有NameNode解决办法

关闭进程&#xff1a; stop-dfs.sh 格式化&#xff1a; hadoop namenode -format 出现报错信息&#xff1a; 23/10/03 22:27:04 WARN fs.FileUtil: Failed to delete file or dir [/usr/data/hadoop/tmp/dfs/name/current/fsimage_0000000000000000000.md5]: it still exi…

libevent源码学习笔记

libevent源码学习笔记 libevent安装libevent源码解析&#xff08;1&#xff09;事件对象&#xff08;2&#xff09;事件操作&#xff08;3&#xff09;事件循环&#xff08;4&#xff09;事件处理 常用指令问题记录问题一&#xff1a;长连接的管理问题二&#xff1a;连接关闭问…

【云备份项目】:环境搭建(g++、json库、bundle库、httplib库)

文章目录 1. g 升级到 7.3 版本2. 安装 jsoncpp 库3. 下载 bundle 数据压缩库4. 下载 httplib 库从 Win 传输文件到 Linux解压缩 1. g 升级到 7.3 版本 &#x1f517;链接跳转 2. 安装 jsoncpp 库 &#x1f517;链接跳转 3. 下载 bundle 数据压缩库 安装 git 工具 sudo yum…

2023年中国家用智能门锁市场发展概况分析:家用智能门锁线上市场销量290.4万套[图]

智能门锁是指区别于传统机械锁的基础上改进的&#xff0c;在用户安全性、识别、管理性方面更加智能化简便化的锁具。智能门锁是门禁系统中锁门的执行部件。智能门锁区别于传统机械锁, 是具有安全性, 便利性, 先进技术的复合型锁具。 智能门锁级别分类 资料来源&#xff1a;共研…

Linux使用之xshell、xftp保姆教学(含安装包,详细使用方法,连接失败解决方法)

前言 链接: FTP&#xff0c;SSH服务器介绍 这是我之前写的一篇博客&#xff0c;其中介绍了Ubuntu操作系统的一些常用命令以及服务器介绍&#xff0c;这篇文章就向大家详细介绍如何安装及应用这些服务器&#xff0c;我以xshell、xftp为例。 安装包&#xff0c;使用方法&#xf…

竞赛选题 大数据商城人流数据分析与可视化 - python 大数据分析

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于大数据的基站数据分析与可视化 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度…

unicode/utf8/utf16/utf32笔记

unicode表示的字符范围是0x0000~0x10FFFF&#xff0c;最多只需要有21位&#xff0c;但是为了字节对齐&#xff0c;所以最多需要32位(4字节) utf8/utf16/utf32都是表示unicode的一种编码方式。 utf8和utf16是变长编码&#xff0c;utf32不变长。utf-8编码长度为1&#xff0c;2&a…

力扣-350.两个数组的交集||

Idea 首先遍历第一个数组&#xff0c;用哈希表存储每个数字及其出现的次数。 然后遍历第二个数组&#xff0c;每出现重复的数字&#xff0c;并判断该数字在哈希表的次数是不是大于0&#xff0c;如果大于则存入答案数组&#xff0c;并将哈希表次数减1&#xff0c;直接遍历结束。…

【强化学习】05 —— 基于无模型的强化学习(Prediction)

文章目录 简介蒙特卡洛算法时序差分方法Example1 MC和TD的对比偏差&#xff08;Bias&#xff09;/方差&#xff08;Variance&#xff09;的权衡Example2 Random WalkExample3 AB 反向传播(backup)Monte-Carlo BackupTemporal-Difference BackupDynamic Programming Backup Boot…

(unordered)map和set封装(底层红黑树)

map和set封装 文章目录 map和set封装设计问题&#xff08;知其所以然&#xff09;为什么要对iterator进行封装&#xff1f;为什么要引入Self Ref Ptr这些模板参数&#xff1f;为什么是试图从non_const转变为const&#xff0c;而不是const转为non_const如何解决 为什么说能加con…

【Java 进阶篇】JDBC PreparedStatement 详解

在Java中&#xff0c;与关系型数据库进行交互是非常常见的任务之一。JDBC&#xff08;Java Database Connectivity&#xff09;是Java平台的一个标准API&#xff0c;用于连接和操作各种关系型数据库。其中&#xff0c;PreparedStatement 是 JDBC 中一个重要的接口&#xff0c;用…

FileZila 实现wind10与Linux系统文件互传

【FileZila】实现windows与Linux系统文件互传

GD32F103x IIC通信

1. IIC通信 1.IIC的介绍 IIC总线有两条串行线&#xff0c;其一是时钟线SCK&#xff08;同步&#xff09;&#xff0c;其二是数据线SDA。只有一条数据线属于半双工。应用中&#xff0c;单片机常常作为主机&#xff0c;外围器件可以挂载多个。&#xff08;当然主机也可以有多个。…

想要精通算法和SQL的成长之路 - 验证二叉树的前序序列化

想要精通算法和SQL的成长之路 - 验证二叉树的前序序列化 前言一. 验证二叉树的前序序列化 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 验证二叉树的前序序列化 原题链接 思路&#xff08;参考负雪明图&#xff09;&#xff1a; 首先我们看题目所给的字符串&#xff…

【Diffusion】DDPM - (2)公式推导 之 前向扩散

1、加噪过程 1、将 图像 x 0 x_0 x0​ 像素值映射到 [-1, 1] 之间 x 255 2 − 1 , w h e r e    x 为图像中的像素值 \quad \frac{x}{255} \times 2-1, \quad where \; x 为图像中的像素值 255x​2−1,wherex为图像中的像素值 \quad 2、生成一张尺寸相同的噪声图片,像…

边缘计算网关

一、项目整体框架图 二、项目整体描述 边缘计算网关项目主要实现了智能家居场景和工业物联网场景下设备的数据采集和控制。 整个项目分为三大层&#xff1a;用户接口层、网关层、设备层。 其中用户层通过QT客户端、WEB界面及阿里云提供数据展示和用户接口。 网关使用虚拟机代替…

Django之十二:模板的继承+用户列表

模板的继承 新建layout.html&#xff1a; {% load static %} <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><link rel"stylesheet" href"{% static plugins…

231003-四步MacOS-iPadOS设置无线竖屏随航SideCar

Step 0&#xff1a;MacOS到iPad无线竖屏随航显示&#xff0c;最终效果 Step 1&#xff1a; 下载 Better Display Step 2&#xff1a;在设置中新建虚拟屏幕&#xff0c;创建虚拟屏幕 Step 3&#xff1a;进行如下设置 Step 4&#xff1a;注意事项 ⚠️ 设置后的虚拟屏幕与Sideca…

nodejs+vue晓海网上订餐系统elementui

管理员功能需求 管理员登陆后&#xff0c;主要模块包括首页、个人中心、用户管理、菜单信息管理等功能。 第三章 系统分析 10 3.1需求分析 10 3.2可行性分析 10 3.2.1技术可行性&#xff1a;技术背景 10 3.2.2经济可行性 11 3.2.3操作可行性&#xff1a; 11 3.3性能分析 11 3.4…