Git应用(1)

一、Git

Git(读音为/gɪt/。中文 饭桶 )是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

了解更多可到GIT官网:Git - Downloads

GIT一般工作流程如下:

1.从远程仓库中克隆 Git 资源作为本地仓库。

2.从本地仓库中checkout代码然后进行代码修改

3.在提交前先将代码提交到暂存区。

4.提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。

5.在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。

我的windows版本安装包:

链接:https://pan.baidu.com/s/1fEEHzKcETTaTRJ5UTUL_UQ?pwd=s7y4 
提取码:s7y4 
 

Linux版本下载地址 :Index of /pub/software/scm/git/ (kernel.org)

解压后会在根路径下看到 git-bash.exe,双击打开之后可以写Linux命令及其git命令;

解压后会在根路径下看到git-cmd.exe,双击打开之后可以写Windows命令及其git命令;

 

有关GIT的安装使用可以参考如下文章:Git 2.24.0 最新版下载安装 配置使用 基本命令 本地仓库 远程仓库 - 梦相随1006 - 博客园 (cnblogs.com)

在 Windows 上安装 Git 后,可以按照以下步骤来启动它:

1. 打开开始菜单:点击任务栏左下角的 Windows 图标或按下 Win 键。

2. 在开始菜单中,找到 "Git" 文件夹(或者直接搜索 "Git")。

3. 点击 "Git" 文件夹,将看到各种 Git 相关的程序和工具。

4. 如果想使用 Git Bash(基于 MinGW-w64),点击打开 "Git Bash"。这将启动一个类似于 Unix 命令行的 Git Bash 终端。

5. 如果想使用 Git GUI(图形用户界面),点击打开 "Git GUI"。

6. 另外,还可以找到其他 Git 工具,如 "Git CMD"(基于 Windows 命令提示符)和 "Gitk"(用于查看版本历史的图形界面工具)。根据需求选择相应的工具。

注意:

确保在安装 Git 时选择了要安装的组件,如 Git Bash、Git GUI 等。如果在安装过程中未选择某个组件,则相应的程序可能不会出现在开始菜单中。

另外,也可以通过运行 `git` 命令来启动 Git 的命令行界面。打开命令提示符窗口(Win + R,然后输入 `cmd`),输入 `git` 并按下回车键即可。如果正确地安装了 Git,并将其添加到系统的环境变量中,这将启动 Git 的命令行界面。

二、Git Bash

2.1Git Bash概述

Git Bash 是一个在 Windows 系统上运行的命令行终端。它为用户提供了一个类似于 Unix shell 的环境,同时集成了 Git 版本控制系统。

Git Bash 在 Windows 上的主要作用是:

  • 1. 运行 Git 命令:Git 是一个流行的分布式版本控制系统,用于跟踪和管理软件开发项目的变化。Git Bash 提供了一个命令行界面,使用户能够使用 Git 命令进行代码版本控制、提交更改、创建分支、合并代码等。
  • 2. 支持常用的命令行工具:除了 Git,Git Bash 还内置了一些常用的命令行工具和实用程序,例如 grep、awk、sed,以及其他常见的 Unix 工具。这使得在 Windows 上使用 Git Bash 可以更方便地执行各种命令行任务。
  • 3. 提供类 Unix shell 环境:Git Bash 基于 MinGW-w64,是一个在 Windows 上模拟 Unix 环境的工具集。它提供了一个基于 Bash 的 Shell,允许用户在 Windows 上使用类似于 Linux 或 macOS 的命令行语法和工具。

Git Bash 为 Windows 用户提供了一个功能强大的命令行环境,使他们能够使用 Git 和其他常用命令行工具来管理代码、运行脚本和执行各种任务。无论是进行软件开发还是进行系统管理,Git Bash 都是一个非常有用的工具。

2.2启动 Git Bash 终端

要在 Windows 上启动 Git Bash 终端(基于 MinGW-w64),请按照以下步骤进行操作:

1. 安装 Git:首先,确保已经在计算机上安装了 Git;

2. 打开 Git Bash:一旦完成安装,你可以通过以下方法打开 Git Bash 终端:

  •    - 在开始菜单中,搜索并选择 "Git Bash"。
  •    - 在安装目录中找到 "Git Bash" 快捷方式(例如 `C:\Program Files\Git\git-bash.exe`),双击打开它。

注意:

当打开 Git Bash 终端时,将会看到一个类似于 Linux 终端的窗口,可以在其中输入和执行 Git 命令。

3. 验证安装:为了验证 Git Bash 是否正确安装并配置,可以尝试运行以下命令来显示 Git 的版本信息:

 git --version

如果成功显示 Git 版本号,则说明 Git Bash 正常工作。如图所示:

成功地启动 Git Bash 终端,可以使用其中的 Git 命令来管理代码仓库和进行其他操作。

2.3MinGW-w64概述

MinGW-w64 是一个用于 Windows 平台的开发环境,它提供了一套工具和库,用于支持在Windows 上进行 C 和 C++ 编程。它是 MinGW(Minimalist GNU for Windows)项目的一个分支,旨在为 Windows 提供 GCC(GNU Compiler Collection)编译器集合和相关工具。

MinGW-w64 主要有以下功能和特点:

  • 1. 编译器套件:MinGW-w64 包含 GCC 编译器集合,包括 C、C++ 和 Fortran 编译器,可以将源代码编译成可执行文件或库。
  • 2. 开发工具:MinGW-w64 提供了在 Windows 环境下进行开发所需的一些常用工具,如 Make、GDB 调试器等。
  • 3. 头文件和库支持:MinGW-w64 提供了与 Windows API 和标准 C/C++ 库兼容的头文件和静态/动态链接库,使开发人员能够访问和使用 Windows 平台特定的功能和功能。
  • 4. 兼容性:MinGW-w64 支持 32 位和 64 位 Windows 系统,并提供了对 Windows XP 及更高版本的广泛兼容性。

使用 MinGW-w64,开发人员可以在 Windows 上进行 C 和 C++ 编程,并构建原生的 Windows 应用程序或库。它提供了强大的开发工具和库支持,使得开发者能够轻松地进行跨平台开发或针对 Windows 平台进行优化的开发工作。

2.3.1常用编译命令

在 MinGW-w64 环境中,可以使用一些常见的编译命令来编译和构建 C 或 C++ 项目。以下是一些常用的编译命令:

1. 编译单个源文件:

gcc -c file.c -o file.o
或
g++ -c file.cpp -o file.o

2. 构建可执行文件:

gcc file1.o file2.o -o executable
或
g++ file1.o file2.o -o executable

3. 编译并运行一个源文件:

gcc file.c -o executable && ./executable
或
g++ file.cpp -o executable && ./executable

4. 使用预处理器查看源代码的预处理结果:

gcc -E file.c -o preprocessed_file.c
或
g++ -E file.cpp -o preprocessed_file.cpp

5. 调试编译选项,生成调试符号信息:

gcc -g file.c -o executable
或
g++ -g file.cpp -o executable

这只是一些常见的编译命令示例,还有其他一些编译选项和参数可以在编译时使用,例如优化标志、链接库等。要了解更多关于 MinGW-w64 的编译命令和选项,请参考 MinGW-w64 官方文档或相关资源,链接:MinGW-w64

三、Git GUI

Git GUI 是一个图形用户界面工具,它提供了一些常用的 Git 操作命令。以下是在 Git GUI 中常用的命令:

  • 1. Open Repository:打开一个现有的 Git 仓库。
  • 2. Clone Existing Repository:克隆一个远程仓库到本地。
  • 3. Create New Repository:创建一个新的 Git 仓库。
  • 4. File Status:查看文件的状态,包括修改、添加、删除等。
  • 5. Refresh:刷新当前视图,以更新文件状态和提交信息。
  • 6. Stage Changed:将修改的文件添加到暂存区。
  • 7. Unstage Changed:将已经添加到暂存区的文件移出暂存区。
  • 8. Commit:提交暂存区的更改,并填写提交消息。
  • 9. Amend Last Commit:修改上一次提交的消息或添加新的文件。
  • 10. Push:将本地分支推送到远程仓库。
  • 11. Pull:从远程仓库获取最新更改并合并到当前分支。
  • 12. Fetch From Remote:从远程仓库获取最新更改,但不合并到当前分支。
  • 13. Merge Local Branches:合并两个本地分支。
  • 14. Rebase Current Branch:将当前分支变基到另一个分支。
  • 15. Tag:创建标签,并附加相关信息。
  • 16. Branch:创建新的分支或切换到其他分支。
  • 17. Checkout:检出指定的分支或修订版本。
  • 18. Reset:重置当前分支到指定的提交或分支。
  • 19. Ignore File:忽略指定文件或文件夹,使其不受版本控制。

这些命令可以在 Git GUI 的菜单栏或工具栏中找到,并通过与其对应的选项进行操作。Git GUI 提供了直观的图形界面,方便用户进行常见的 Git 操作。根据需求,选择适当的命令执行相应的操作即可。

四、Git CMD

Git CMD 是 Windows 上的一个命令行界面,用于执行 Git 命令和管理代码库。它是 Git for Windows 软件包中的一部分,提供了一个与 Windows 命令提示符(cmd.exe)兼容的Git 命令行环境。

以下是关于 Git CMD 的一些特点和使用方式:

  • 1. Git 命令:Git CMD 提供了完整的 Git 命令集,可以使用它来进行版本控制、提交更改、创建和合并分支、查看日志等。通过在 Git CMD 中运行 Git 命令,可以轻松地管理你的 Git 仓库。
  • 2. Windows 集成:Git CMD 可以无缝集成到 Windows 系统中。一旦安装了 Git for Windows 软件包,Git CMD 就会自动注册为默认的 Git 命令行工具。这意味着你可以在任何 Windows 命令提示符窗口中直接运行 Git CMD。
  • 3. 兼容性:Git CMD 相对于常规的 Windows 命令提示符具有更好的兼容性。它使用类 Unix shell 的命令行语法,允许你执行类似于 Linux 或 macOS 上的命令。这使得在 Windows 上使用 Git CMD 更加便捷和灵活。
  • 4. 配置和扩展:与其他命令行工具一样,你可以通过设置 Git 配置来自定义 Git CMD 的行为。通过配置文件、全局选项和别名,你可以定义个人偏好和定制化 Git CMD 的外观和行为。

总结:

Git CMD 是 Windows 上的一个命令行工具,用于提供与 Git 相关的功能。它允许用户在 Windows 平台上运行 Git 命令,并与 Git 仓库进行交互。无论是在单个项目中还是在团队开发中,Git CMD 是管理和版本控制代码的重要工具。

五、Git常用命令

Git 是一个强大的版本控制系统,以下是一些常用的 Git 命令:

5.1. 创建与克隆:

  •    - `git init`:在当前目录初始化一个新的 Git 仓库。
  •    - `git clone <repository>`:克隆远程仓库到本地。

5.2. 添加与提交:

  •    - `git add <file>`:将文件添加到暂存区。
  •    - `git commit -m "<message>"`:提交暂存区的更改并添加提交消息。

5.3. 分支与合并:

  •    - `git branch`:列出所有分支。
  •    - `git branch <branch_name>`:创建新分支。
  •    - `git checkout <branch_name>`:切换到指定分支。
  •    - `git merge <branch_name>`:将指定分支合并到当前分支。

5.4. 获取与推送:

  •    - `git pull`:获取远程仓库的最新更改并合并到本地分支。
  •    - `git push <remote> <branch>`:将本地分支推送到远程仓库。

5.5. 状态与日志:

  •    - `git status`:显示工作区和暂存区的状态。
  •    - `git log`:查看提交历史记录。

5.6. 撤销与重置:

  •    - `git revert <commit>`:撤销指定提交的更改。
  •    - `git reset <commit>`:重置当前分支到指定提交。

5.7. 远程仓库管理:

  •    - `git remote add <name> <url>`:添加远程仓库。
  •    - `git remote -v`:显示远程仓库的详细信息。

5.8. 标签管理:

  •    - `git tag`:列出所有标签。
  •    - `git tag <tag_name>`:创建一个标签。

这只是一小部分 Git 命令的示例,Git 提供了非常丰富的功能和命令集。可以通过运行 `git help` 或 `git <command> --help` 来获取关于特定命令的更多信息,并查阅 Git 官方文档以获得更全面的了解。

下面是每个命令的简要说明:

①开始一个工作区:

  • - `clone`:克隆一个仓库到新目录。
  • - `init`:创建一个空的 Git 仓库或重新初始化一个现有仓库。

②对当前更改进行操作:

  • - `add`:将文件内容添加到暂存区。
  • - `mv`:移动或重命名文件、目录或符号链接。
  • - `restore`:恢复工作树中的文件。
  • - `rm`:从工作树和暂存区中删除文件。

③查看历史和状态:

  • - `bisect`:使用二分查找定位引入错误的提交。
  • - `diff`:显示提交之间、提交与工作树之间等的差异。
  • - `grep`:打印匹配模式的行。
  • - `log`:显示提交日志。
  • - `show`:显示不同类型的对象。
  • - `status`:显示工作树的状态。

④管理、标记和调整常见历史:

  • - `branch`:列出、创建或删除分支。
  • - `commit`:记录对仓库的更改。
  • - `merge`:合并两个或多个开发历史记录。
  • - `rebase`:在另一个基准点上重新应用提交。
  • - `reset`:将当前 HEAD 重置为指定状态。
  • - `switch`:切换分支。
  • - `tag`:创建、列出、删除或验证使用 GPG 签名的标签对象。

⑤协作:

  • - `fetch`:从另一个仓库下载对象和引用。
  • - `pull`:从另一个仓库或本地分支获取并集成更改。
  • - `push`:更新远程引用以及关联的对象。

可以使用 `git help <command>` 查看特定命令的详细信息,例如 `git help clone`。通过阅读帮助文档,可以进一步了解每个命令的用途和用法。

六、Git基础信息

要查看 Git 的基础信息,你可以使用以下命令:

6.1. 查看配置信息:

  •    - `git config --list`:列出所有的 Git 配置信息。
  •    - `git config --global user.name`:查看全局用户名设置。
  •    - `git config --global user.email`:查看全局用户邮箱设置。

例如:

git config --list

它包含了一些配置选项和对应的值。下面是每个配置选项的解释:

  • - `diff.astextplain.textconv=astextplain`:指定将文本文件转换为纯文本进行 diff 比较。
  • - `filter.lfs.clean=git-lfs clean -- %f`:指定使用 Git LFS 清理(clean)过滤器处理文件。
  • - `filter.lfs.smudge=git-lfs smudge -- %f`:指定使用 Git LFS 模糊(smudge)过滤器处理文件。
  • - `filter.lfs.process=git-lfs filter-process`:指定使用 Git LFS 过滤器进行处理。
  • - `filter.lfs.required=true`:设置 Git LFS 过滤器为必需,确保正确处理 LFS 文件。
  • - `http.sslbackend=openssl`:指定使用 OpenSSL 作为 SSL 后端。
  • - `http.sslcainfo=D:/Git/mingw64/etc/ssl/certs/ca-bundle.crt`:指定 SSL 证书的路径。
  • - `core.autocrlf=true`:启用自动转换行尾符(CRLF <-> LF)功能。
  • - `core.fscache=true`:启用文件系统缓存。
  • - `core.symlinks=false`:禁用符号链接处理。
  • - `pull.rebase=false`:在拉取(pull)操作时不使用 rebase。
  • - `credential.helper=manager`:指定使用凭据管理器来处理身份验证信息。
  • - `credential.https://dev.azure.com.usehttppath=true`:指定使用 HTTP 路径来处理 Azure DevOps 的 HTTPS 连接。
  • - `init.defaultbranch=master`:指定默认分支名称为 "master"。

这些配置选项可以根据项目的需要进行调整和设置。如果想进一步了解每个选项的详细说明和其他可用选项,请参考 Git 官方文档或运行 `git help config` 来获取更多信息。

6.2. 查看分支信息:

  •    - `git branch`:列出所有本地分支。
  •    - `git branch -r`:列出所有远程分支。
  •    - `git branch -a`:列出所有本地和远程分支。

6.3. 查看提交历史:

  •    - `git log`:显示完整的提交历史记录。
  •    - `git log --oneline`:以简洁的单行形式显示提交历史。
  •    - `git log --graph`:以图形方式显示提交历史(展示分支和合并)。

6.4. 查看当前状态:

  •    - `git status`:显示工作区和暂存区的状态。
  •    - `git diff`:显示当前未暂存的更改。

6.5. 查看远程仓库信息:

  •    - `git remote -v`:显示远程仓库的详细信息。
  •    - `git remote show <remote_name>`:显示指定远程仓库的详细信息。

6.6. 查看标签信息:

  •    - `git tag`:列出所有标签。
  •    - `git show <tag_name>`:显示指定标签的详细信息。

本篇简单介绍GIT的应用,更多内容请参考官方资料。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

线程安全问题解析

线程内存模型 线程在工作的时候&#xff0c;如果涉及到需要访问对象的某个成员变量&#xff0c;比如下面的这个类里的amount 属性&#xff1a; class Goods {private int amount;// balabala.....} 线程在运行期间&#xff0c;首先把这个属性从主内存里load进自己的工作内存&…

leetcode:160. 相交链表

一、题目 原题链接&#xff1a;160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 函数原型&#xff1a; struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) 二、思路 判断两个链表是否相交&#xff0c;只要判断两个链表是否有相同的…

图数据库Neo4j详解

文章目录 第一章 图和Neo4j1.1 图数据库概念1.1.1 图论起源1.1.2 节点-关系及图1.1.3 图数据库1.1.4 图数据库分类1.1.4 图数据库应用场景1.1.5 与关系型数据库对比1.1.6 图数据库优势 1.2 Neo4j介绍1.2.1 Neo4j是什么1.2.2 Neo4j特点1.2.3 Neo4j的优势1.2.4 Neo4j的限制1.2.5 …

揭秘系列: Goroutine调度器

现在不要担心理解上面的图片&#xff0c;因为我们将从非常基础的知识开始。 Goroutines分布在线程中&#xff0c;由Goroutine调度器在幕后处理。根据我们之前的讨论&#xff0c;我们知道一些关于Goroutines的事情&#xff1a; •从原始执行速度来看&#xff0c;Goroutines不一定…

Unity中全局光照GI的总结

文章目录 前言一、在编写Shader时&#xff0c;有一些隐蔽的Bug不会直接报错&#xff0c;我们需要编译一下让它显示出来&#xff0c;方便修改我们选择我们的Shader&#xff0c;点击编译并且展示编译后的Shader后的内容&#xff0c;隐蔽的Bug就会暴露出来了。 二、我们大概回顾一…

智慧畜牧小程序开发流程

本文将详细介绍智慧畜牧小程序的开发流程&#xff0c;包括需求分析、设计、开发、测试和上线等环节。同时&#xff0c;将深入思考智慧畜牧小程序的发展趋势和未来挑战&#xff0c;为读者提供有深度的思考和逻辑性的分析。 一、需求分析 1.明确目标用户&#xff1a;首先…

Bond配置文件配置

1、选择2个自己需要的网口&#xff0c;查看有哪些网口 [roothostname ~]# ifconfig -a [roothostname ~]#systemctl disable NetworkManager 开机不启动图形化网络服务 2、编辑网口的配置文件 [roothostname ~]# cd /etc/sysconfig/network-scripts [roothostname n…

实操创建属于自己的亚马逊云科技VPS服务:Amazon Lightsail

本文主要讲述如何独立创建自己的亚马逊云科技VPS服务&#xff0c;希望此文能帮助你对亚马逊云科技VPS服务也就是Amazon Lightsail&#xff0c;有个新的认识&#xff0c;对所使用的VPS有所帮助。 Amazon Lightsail是一款无论云计算的新手还是专家&#xff0c;都可通过其快速启动…

Sagemaker基础操作指南

简介 Amazon SageMaker是亚马逊AWS提供的一项托管式机器学习服务&#xff0c;旨在简化和加速机器学习开发的整个生命周期。它为机器学习工程师和数据科学家提供了一套完整的工具和功能&#xff0c;用于构建、训练、调优和部署机器学习模型。本文将会通过一个简单的例子&#x…

Conda executable is not found 三种问题解决

如果在PyCharm中配置Python解释器时显示“conda executable is not found”错误消息&#xff0c;这意味着PyCharm无法找到您的Conda可执行文件。您可以按照以下步骤解决此问题&#xff1a; 1.方法一 确认Conda已正确安装。请确保您已经正确安装了Anaconda或Miniconda&#xff…

演示文稿制作软件 Deckset mac中文版介绍

Deckset mac是一款Mac上的演示文稿制作软件&#xff0c;它可以让你使用Markdown语言快速地创建演示文稿。与传统的演示文稿制作软件相比&#xff0c;Deckset采用了全新的设计理念&#xff0c;旨在让用户更加专注于内容的创作&#xff0c;而不是花费过多的时间在排版和设计上。 …

vivo 数据库降本实践:探索成本效益最优的数据库解决方案

vivo 自 2022 年开始调研、测试 OceanBase 至今&#xff0c;现已上线 17 个业务系统&#xff0c;涵盖日志类、分析类、交易类业务&#xff0c;实现了总资源节省 80%&#xff0c;开发、运维工作大幅简化。vivo 体系与流程 IT 部门数据库高级工程师廖光明在本文中&#xff0c;详细…

Antd G6实现自定义工具栏

在使用g6实现知识图谱可视化中&#xff0c;产品经理提出了有关图谱操作的不少功能&#xff0c;需要放置在工具栏中&#xff0c;其中有些功能不在g6自带的功能里&#xff0c;且工具栏样式、交互效果也和官方自定义工具栏不同。那我们怎么去实现呢&#xff1f; g6官方的工具栏案例…

香港和美国节点服务器的测试IP哪里有?

在选择服务器时&#xff0c;我们通常需要进行一些测试来评估其性能和稳定性。当然&#xff0c;这其中一个重要的测试指标就是服务器的 IP 地址。通过测试 IP 地址&#xff0c;我们可以了解到服务器所在地区以及网络连接质量等信息。作为香港及亚太数据中心领先服务商恒创科技&a…

解决Python并发访问共享资源引起的竞态条件、死锁、饥饿问题的策略

目录 一、概述 二、竞态条件 三、死锁 四、饥饿 五、总结 一、概述 在Python中&#xff0c;多线程和多进程可以有效地提高程序的并发性能。然而&#xff0c;当多个线程或进程需要访问共享资源时&#xff0c;可能会引发竞态条件、死锁和饥饿等问题。这些问题可能会导致程序…

敏捷战略实施方法-资深组织发展专家实践秘笈

要怎样才能生成敏捷战略呢&#xff1f;作者基于多年的组织发展实践&#xff0c;总结出如下公式&#xff1a;敏捷战略 战略共创 迭代进化 即要得到一个好的敏捷战略&#xff0c;首先要做好战略共创&#xff0c;并在战略实施过程中对战略进行持续迭代&#xff0c;两者不可偏废…

机器学习——奇异值分解案例(图片压缩-代码简洁版)

本想大迈步进入前馈神经网络 但是…唉…瞅了几眼&#xff0c;头晕 然后想到之前梳理的奇异值分解、主成分分析、CBOW都没有实战 如果没有实际操作&#xff0c;会有一种浮在云端的虚无感 但是如果要实际操作&#xff0c;我又不想直接调用库包 可是…如果不直接调包&#xff0c;感…

一种优雅的调用第三方接口的思路及实现

之前的项目调用第三方接口时&#xff0c;往往用HttpUtils类似的静态方法调用。比较丑&#xff0c;不通用。如下&#xff0c;这是截取项目中某人调用的一段代码&#xff0c;非常不雅&#xff1a; 经改进后&#xff0c;采用了动态代理技术来实现&#xff0c;效果如下&#xff1a…

RabbitMQ的 五种工作模型

RabbitMQ 其实一共有六种工作模式&#xff1a; 简单模式&#xff08;Simple&#xff09;、工作队列模式&#xff08;Work Queue&#xff09;、 发布订阅模式&#xff08;Publish/Subscribe&#xff09;、路由模式&#xff08;Routing&#xff09;、通配符模式&#xff08;Topi…

网络安全-黑客技术-小白学习

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…