当前位置: 首页 > news >正文

简洁明快git入门及github实践教程

简洁明快git入门及github快速入门实践教程

  • 前言
  • git知识概要:
    • 一:什么是 Git?
    • 二:安装 Git
    • 三:配置 Git
      • 配置`git`的用户名和邮箱地址
      • 创建仓库
    • 四:Git实践
    • 五:远程仓库操作(基于git命令使用GitHub)
      • 1:初始设置与仓库创建
        • 1.1 安装Git并配置
        • 1.2. 创建GitHub账户与仓库
      • 2: 克隆与配置远程仓库
        • 2.1 克隆远程仓库
        • 2.2 查看与添加远程仓库
      • 3:日常开发与推送更改
        • 3.1 添加与提交文件
        • 3.2. 推送更改到GitHub
      • 4:拉取更新与分支管理
        • 4.1 拉取远程仓库的更新
        • 4.2 分支的创建、切换与合并
      • 5:高级远程仓库操作
        • 5.1 查看文件历史与版本
        • 5.2 回滚操作
        • 5.3 标签管理
    • 六:解决冲突
    • 七:协作小技巧:
  • 常用Git命令总结
    • 学习资源
  • github的精简知识总结
    • 入门基础
    • 核心操作
    • 协作功能
    • 进阶技巧

前言

在研究生阶段,学习使用GitGitHub知识非常重要。git可以提升我们的代码管理能力、版本控制效率以及团队协作水平。GitHub则为我们提供了一个代码托管、项目分享、版本控制以及社区交流的平台。

本帖子的主要目的是,半小时内简介明快的带不了解gitgithub的小白入门,并开始使用其在本地和云端进行开发

首先,小白应该首先看下面四个网络链接中的链接1链接2学习git,再看一下下面的链接3链接4学习一下github。(都是几分钟到十几分钟的视频,两倍速看完很快就能对git和github有基本的了解) 。

  1. 链接1:改变了世界的软件!程序员的基本功,Git 应该如何使用?
  2. 链接2:git、github 保姆级教程入门,工作和协作必备技术,github提交pr - pull request
  3. 链接3:GitHub上的项目要怎么运行?一个视频教会你!
  4. 链接4:GitHub介绍:如何找公开的软件、项目、代码等 - 开源的意义和知识的突破 opensource

之后看我下面帖子里的知识进行应用和开发尝试即可

git知识概要:

一:什么是 Git?

Git 是一个分布式版本控制系统,用于跟踪计算机文件的变化并协调多个用户之间的工作。它允许你记录项目的修改历史,回滚到之前的版本,以及与其他开发者协作。

二:安装 Git

首先大家可以去官网下载,或通过包管理器去安装git,比如:

  • Windows 用户可以访问 Git官网 下载安装程序。
  • Mac 用户可以通过 Homebrew 安装:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 然后 brew install git
  • Linux 用户可以使用包管理器安装,例如 sudo apt-get install git(Ubuntu)。

(当然不仅局限于这几种方法)

三:配置 Git

安装完成后,你可以通过命令行界面vscodepycharm使用Git

之后输入下面命令来确定你此时已经安装好了git

git version

配置git的用户名和邮箱地址

安装完成后,你需要配置你的用户名和邮箱地址。这些信息将被用于标识你的提交。

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

之后我们可以创建仓库并进行git的初始化:

创建仓库

创建一个新的文件目录,来存放你的git项目。

mkdir myproject
cd myproject
git init

这样就会在当前目录下创建一个.git的隐藏文件夹来保存文件的每个git版本的记录和变化

我们还可以再使用命令:

git status

显示一下当前工作区、暂存区和仓库的状态。之后我们可以使用git进行添加文件提交修改查看提交历史等等操作

四:Git实践

1. 添加文件到暂存区

git add <file>

你可以通过这个命令将修改过的文件添加到暂存区。

2. 提交文件到仓库

git commit -m "Your commit message"

这个命令会将暂存区的文件提交到仓库,并附带一条提交信息。

3. 查看提交历史

git log

这个命令会显示仓库的提交历史,包括每次提交的哈希值、作者、日期和提交信息。

4. 分支管理

  • 创建分支:
git branch <branch_name>
  • 切换分支:
git checkout <branch_name>
  • 合并分支:
git merge <branch_name>
  • 删除分支:
git branch -d <branch_name>

五:远程仓库操作(基于git命令使用GitHub)

1:初始设置与仓库创建

1.1 安装Git并配置

首先,确保你的计算机上已经安装了Git。可以从Git官网下载并安装适合你操作系统的版本。安装完成后,打开命令行工具,输入以下命令来检查Git是否正确安装:

git --version

接着,配置你的用户名和邮箱地址。这些信息会成为你每次提交的一部分,有助于团队协作时识别提交者。

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
1.2. 创建GitHub账户与仓库

访问GitHub官网并注册账户。登录后,点击右上角的“+”号,选择“New repository”来创建一个新的仓库。填写仓库名称、描述(可选)、选择是否公开,并勾选“Initialize this repository with a README”以创建一个初始README文件。点击“Create repository”完成创建。

2: 克隆与配置远程仓库

2.1 克隆远程仓库

使用以下命令将远程仓库克隆到你的本地计算机上:

git clone https://github.com/yourusername/your-repository.git
cd your-repository

这将创建一个包含远程仓库所有文件和历史的本地副本。

2.2 查看与添加远程仓库

使用git remote -v命令可以查看当前仓库已配置的远程仓库信息。默认情况下,克隆仓库时会自动添加一个名为origin的远程仓库。

如果你需要为本地仓库添加一个新的远程仓库,可以使用以下命令:

git remote add <remote_name> <repository-url>

3:日常开发与推送更改

3.1 添加与提交文件

在本地仓库中添加新文件或修改现有文件后,使用以下命令将其添加到本地暂存区并提交:

# 添加单个文件到暂存区
git add filename.txt# 或者添加所有更改过的文件
git add .# 提交更改
git commit -m "Add meaningful commit message here"
3.2. 推送更改到GitHub

完成本地提交后,使用以下命令将更改推送到远程仓库:

git push origin <branch_name>

通常,<branch_name>会是你的默认分支名,如mainmaster。确保在推送前已经切换到正确的分支。
PSmain 通常指的是默认的主分支名。在早期的Git版本中,默认的分支名是master,但从2020年开始,许多平台(包括GitHub)开始默认使用main作为新建仓库的主分支名。不过不是所有的仓库都必须使用main,分支名是可以自定义的)

4:拉取更新与分支管理

4.1 拉取远程仓库的更新

当远程仓库有更新时,你可以使用以下命令将更改拉取到本地仓库并合并到当前分支:

git pull origin <branch_name>
4.2 分支的创建、切换与合并

和团队协作,涉及到分支管理时,可以使用以下的命令

  1. 查看所有分支:使用git branch命令。
  2. 创建新分支并切换到该分支:使用git checkout -b <新分支名>命令。
  3. 提交更改到新分支后,使用git push origin <新分支名>将分支的更改推送到GitHub。
  4. 删除分支:使用git branch -D <分支名>删除本地分支,使用git push origin --delete <分支名>删除远程分支。
  • 创建并切换到新分支
git checkout -b <new_branch_name>
  • 切换分支
git checkout <branch_name>
  • 合并分支:切换到目标分支后,使用以下命令将新分支的更改合并进来:
git merge <new_branch_name>
  • 删除分支:合并完成后,如果不再需要该分支,可以安全地删除它。使用以下命令删除本地和远程分支:
# 删除本地分支
git branch -d <branch_name># 删除远程分支
git push origin --delete <branch_name>

5:高级远程仓库操作

5.1 查看文件历史与版本
  • 查看文件历史:使用以下命令查看指定文件的所有提交历史记录。
git log <file>
  • 查看文件的某个版本:使用以下命令查看指定提交中某个文件的内容。
git show <commit_hash>:<file_path>
5.2 回滚操作
  1. 将文件从暂存区回滚到工作区:使用git checkout <文件名>命令。
  2. 将已经提交到仓库的文件回滚到工作区:使用git reset HEAD <文件名>命令。(记得备份,可以去了解一下软回退硬回退
5.3 标签管理
  • 创建标签:为当前分支的最新提交创建一个标签。
git tag <tag_name>
  • 查看标签:列出所有标签。
git tag
  • 推送标签到远程仓库
# 推送单个标签
git push origin <tag_name># 推送所有标签
git push origin --tags

六:解决冲突

当多个协作者尝试编辑同一个文件的同一部分时,可能会发生冲突。Git无法自动解决这种冲突,这时候需要我们手动解决。

  • 打开冲突文件,查找冲突标记(<<<<<<<=======>>>>>>>)。
  • 决定保留哪些更改,删除不需要的部分以及冲突标记。
  • 保存文件后,再次提交更改。

七:协作小技巧:

    1. 定期拉取更新:在开始新工作前,先拉取远程仓库的最新更改,以避免合并冲突。
    1. 分支检查:在进行推送(push)或拉取(pull)操作前,使用git status查看当前分支。
    1. 工作备份:在进行可能破坏工作流的操作(如reset)前,确保已经备份了重要工作(可以了解一下软回退硬回退)

常用Git命令总结

  • 初始化仓库git init
  • 克隆仓库git clone <repository_url>
  • 添加文件到暂存区git add <file>
  • 提交文件到仓库git commit -m "Your commit message"
  • 查看状态git status
  • 查看提交历史git log
  • 创建分支git branch <branch_name>
  • 切换分支git checkout <branch_name>
  • 合并分支git merge <branch_name>
  • 删除分支git branch -d <branch_name>
  • 添加远程仓库git remote add <remote_name> <repository_url>
  • 推送分支到远程仓库git push <remote_name> <branch_name>
  • 从远程仓库拉取更新git pull <remote_name> <branch_name>

学习资源

  • 官方文档:Git Documentation
  • 教程:Pro Git book

github的精简知识总结

入门基础

  • 注册与登录:访问GitHub官网,使用邮箱注册账号并登录。
  • 仓库(Repository):存储项目代码的地方,可公开或私有。
  • 克隆(Clone):将远程仓库复制到本地电脑。
  • 分叉(Fork):创建他人仓库的副本到自己的账户下。

核心操作

  • 创建仓库:点击页面右上角“+”号,选择“New repository”填写信息创建。
  • 提交(Commit):在本地修改代码后,通过git addgit commit记录变更。
  • 推送(Push):将本地提交推送到远程仓库,使用git push
  • 拉取请求(Pull Request, PR):向他人仓库贡献代码时,先分叉再修改,最后提交PR请求合并。

协作功能

  • 关注(Follow):关注用户或仓库,获取最新动态。
  • 议题(Issues):用来跟踪任务、bug或功能请求,可添加标签管理。
  • 讨论区(Discussions):用于非代码相关的广泛讨论。
  • Wiki:为仓库添加文档,方便团队协作。

进阶技巧

  • 分支(Branch):在不影响主线代码的情况下开发新功能,使用git checkout -b <branch-name>创建。
  • 合并(Merge):将分支代码合并到主线,可通过网页界面或git merge命令。
  • 持续集成/持续部署(CI/CD):自动化构建、测试和部署流程,提高开发效率。
  • README:仓库的首页说明文件,用Markdown编写,展示项目介绍、安装指南等。

相关文章:

简洁明快git入门及github实践教程

简洁明快git入门及github快速入门实践教程 前言git知识概要&#xff1a;一&#xff1a;什么是 Git&#xff1f;二&#xff1a;安装 Git三&#xff1a;配置 Git配置git的用户名和邮箱地址创建仓库 四&#xff1a;Git实践五&#xff1a;远程仓库操作&#xff08;基于git命令使用G…...

doris:本地文件导入

Doris 提供多种方式从本地数据导入&#xff1a; Stream Load Stream Load 是通过 HTTP 协议将本地文件或数据流导入到 Doris 中。Stream Load 是一个同步导入方式&#xff0c;执行导入后返回导入结果&#xff0c;可以通过请求的返回判断导入是否成功。支持导入 CSV、JSON、Pa…...

【网络安全】FortiOS Authentication bypass in Node.js websocket module

文章目录 漏洞说明严重等级影响的产品和解决措施推荐阅读 漏洞说明 FortiOS存在一个使用替代路径或者信道进行身份验证绕过漏洞&#xff0c;可能允许未经身份验证的远程攻击者透过向Node.js WebSocket模块发送特别设计的请求&#xff0c;可能获得超级管理员权限。 Fortinet 官…...

原型与原型链

建议大家看的时候手动画图&#xff01;&#xff01;&#xff01;这点很重要&#xff01;&#xff01;&#xff01; 原型链在结构上很像链表&#xff0c;每个对象中都保存着一个地址&#xff0c;指向当前对象的原型&#xff0c;可以层层向上查找&#xff0c;起到继承的效果。 …...

TIM定时中断

TIM定时中断 文章目录 TIM定时中断1.TIM定时器1.1定时器的定义1.1.1基本定时器1.1.2通用定时器1.1.3高级定时器 2.计数器有预装时序3.定时器结构及涉及的函数解析3.1定时中断基本结构3.2实现步骤3.3TIM本小节的库函数解释说明3.4计数器计数频率和计数器溢出频率 4.定时器定时中…...

Windows 上的 MySQL 8.4.3 和 WSL(Ubuntu)的 MySQL 8.0.40 之间配置 主从同步

在 Windows 上的 MySQL 8.4.3 和 WSL&#xff08;Ubuntu&#xff09;的 MySQL 8.0.40 之间配置 主从同步&#xff08;Master-Slave Replication&#xff09; 的过程略有不同&#xff0c;因为两者的 MySQL 版本和环境存在差异。以下是详细步骤&#xff0c;帮助你完成跨平台的主从…...

中职网络建设与运维ansible服务

ansible服务 填写hosts指定主机范围和控制节点后创建一个脚本&#xff0c;可以利用简化脚本 1. 在linux1上安装系统自带的ansible-core,作为ansible控制节点,linux2-linux7作为ansible的受控节点 Linux1 Linux1-7 Yum install ansible-core -y Vi /etc/ansible/hosts 添加…...

jmeter事务控制器-勾选Generate Parent Sample

1、打开jmeter工具&#xff0c;添加线程组&#xff0c;添加逻辑控制器-事务控制器 2、在事务控制器&#xff0c;勾选Generate parent sample&#xff1a;生成父样本&#xff1b;说明勾选后&#xff0c;事务控制器会作为父节点&#xff0c;其下面的请求作为子节点 3、执行&#…...

win32汇编环境,窗口程序中对多行编辑框的操作

;运行效果 ;win32汇编环境,窗口程序中对多行编辑框的操作 ;比如生成多行编辑框&#xff0c;显示文本、获取文本、设置滚动条、捕获超出文本长度消息等。 ;直接抄进RadAsm可编译运行。重点部分加备注。 ;下面为asm文件 ;>>>>>>>>>>>>>&g…...

Java反射、静态代理、动态代理

往期推荐 Java io模型-CSDN博客 如何设计一个能根据任务优先级来执行的线程池-CSDN博客 Web实时消息推送的几种方案_setmessageinnerhtml is not defined-CSDN博客 yum、dnf、apt包管理工具-CSDN博客 概述 反射机制是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够…...

在Android 15的设备上关闭edge-to-edge功能

Android 15在开发上有很多更新&#xff0c;当APP的targetSdk设置为35&#xff0c;且设备系统为Android 15时&#xff0c;APP会自动启动edge-to-edge功能。虽然可视面积变大了&#xff0c;但界面布局也会受影响。 如果要强制关闭edge-to-edge功能。可以在style.xml中将windowOp…...

GIS大模型:交通领域方面的应用

文章目录 1. 实时交通流量预测&#xff1a;2. 动态信号灯控制&#xff1a;3. 交通流模式识别&#xff1a;4. 交通事故预警&#xff1a;5. 路径推荐与导航优化&#xff1a;6. 长期交通规划&#xff1a;7. 事件影响分析&#xff1a;8. 智能停车管理&#xff1a; 大模型在交通流量…...

Vi 和 Vim 文本编辑器使用指南

目录 基本模式 查找与替换 Vi&#xff08;Visual&#xff09;和 Vim&#xff08;Vi Improved&#xff09;是两款在 Unix/Linux 系统中广泛使用的文本编辑器。Vim 是 Vi 的改进版本&#xff0c;继承了 Vi 的核心功能&#xff0c;并增加了许多新特性&#xff0c;如语法高亮、多…...

redis acl

redis acl redis 安全访问控制 官网 本文基于redis 6.2.17 版本进行测试验证 使用方式 redis 使用 acl 的配置有2种方式&#xff1a;使用 redis.conf 文件配置&#xff0c;和在 redis.conf 文件中配置 aclfile path 指定外部 aclfile 文件路径 使用 redis.conf 文件配置 …...

Linux Centos 安装Jenkins到服务

一、前言 假设你已经下载了jenkins.war 安装了对应的jdk&#xff0c;下面我们来安装jenkins&#xff0c;以服务的形式安装。 二、安装 1&#xff09;将jenkins.war拷贝到合适的位置&#xff0c;我的位置 /u01/jenkins/ &#xff0c;位置你自己选。 2&#xff09;创建系统用户…...

WINFORM - DevExpress -> gridcontrol ---->控件(ColumnEdit控件)

ImageComboBoxEdit--带图片的下拉菜单 DevExpress&#xff1a;带图片的下拉菜单ImageComboBoxEdit_weixin_34313182的博客-CSDN博客 ImageEdit--图片按钮 DevExpress控件中的gridcontrol表格控件&#xff0c;如何在属性中设置某一列显示为图片&#xff08;图片按钮&#xff…...

工作中redis常用的5种场景

在日常开发工作中&#xff0c;Redis作为一款高性能的内存数据库&#xff0c;凭借其强大的功能特性和卓越的性能表现&#xff0c;已经成为了许多项目中不可或缺的组件。本文将详细介绍Redis在实际工作中最常见的5种应用场景&#xff0c;并附上具体的代码实现。 1. 缓存热点数据…...

得物App利用技术赋能,打造潮流消费“新玩法”

如今&#xff0c;技术的力量正在以前所未有的方式重塑着我们的消费体验。从线上购物到虚拟现实&#xff0c;技术的角色越来越重要&#xff0c;它不仅是推动商业发展的引擎&#xff0c;更是满足年轻消费者多元化、个性化需求的关键。得物App作为一个年轻人喜爱的潮流消费平台&am…...

tomcat状态一直是Exited (1)

docker run -di -p 80:8080 --nametomcat001 你的仓库地址/tomcat:9执行此命令后tomcat一直是Exited(1)状态 解决办法&#xff1a; 用以下命令创建运行 docker run -it --name tomcat001 -p 80:8080 -d 你的仓库地址/tomcat:9 /bin/bash最终结果 tomcat成功启动...

015: 深度学习之正向传播和反向传播

本文为合集收录&#xff0c;欢迎查看合集/专栏链接进行全部合集的系统学习。 合集完整版请参考这里。 上一节介绍了训练和推理的概念&#xff0c;这一节接着训练和推理的概念讲一下&#xff0c;神经网络的正向传播和反向传播。 正反向传播 其实单看正向传播和反向传播这两个…...

ubuntu下安装编译cmake,grpc与protobuf

文章目录 install cmakeinstall grpcinstall protobuf注 install cmake sudo apt-get install -y g make libssl-devcd third_party/cmake-3.17.2./configuresudo make && make installcmake --version install grpc $ sudo apt-get install -y build-essential auto…...

如何在Mac上使用Brew更新Cursor应用程序

在这篇博文中&#xff0c;我们将介绍如何在Mac上更新Cursor应用程序&#xff0c;以及一些相关的使用技巧和功能。 什么是Cursor&#xff1f; Cursor是一款强大的工具&#xff0c;旨在帮助用户更好地编写、编辑和讨论代码。它结合了AI技术&#xff0c;使得编程过程更加高效和便…...

玩转大语言模型——使用graphRAG+Ollama构建知识图谱

系列文章目录 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 文章目录 系列文章目录前言下载和安装用下载项目的方式下载并安装用pip方式下载并安装 生成知识图谱初始化文件夹修改模型配置修改知识库生成配置创…...

LevelDB 源码阅读:如何优雅地合并写入和删除操作

LevelDB 支持写入单个键值对和批量写入多个键值对&#xff0c;这两种操作的处理流程本质上是相同的&#xff0c;都会被封装进一个 WriteBatch 对象中&#xff0c;这样就可以提高写操作的效率。 在 LevelDB 中&#xff0c;WriteBatch 是通过一个简单的数据结构实现的&#xff0…...

Vue.js 组件的生命周期钩子

Vue.js 组件的生命周期钩子 在 Vue.js 中&#xff0c;组件的生命周期是指组件从创建到销毁的整个过程。在这个过程中&#xff0c;Vue 提供了多个 生命周期钩子&#xff0c;让我们可以在不同的阶段执行特定的逻辑。掌握这些钩子非常重要&#xff0c;它们能帮助我们灵活控制组件…...

VD:生成a2l文件

目录 前言Simulink合并地址 ASAP2 editor 前言 我之前的方法都是通过Simulink模型生成代码的过程中顺便就把a2l文件生成出来了&#xff0c;这时的a2l文件还没有地址&#xff0c;所以紧接着会去通过elf文件更新地址&#xff0c;一直以为这是固定的流程和方法&#xff0c;今天无…...

【C++ 类和对象 进阶篇】—— 逻辑森林的灵动精灵,舞动类与对象的奇幻圆舞曲

欢迎来到ZyyOvO的博客✨&#xff0c;一个关于探索技术的角落&#xff0c;记录学习的点滴&#x1f4d6;&#xff0c;分享实用的技巧&#x1f6e0;️&#xff0c;偶尔还有一些奇思妙想&#x1f4a1; 本文由ZyyOvO原创✍️&#xff0c;感谢支持❤️&#xff01;请尊重原创&#x1…...

【Hive】海量数据存储利器之Hive库原理初探

文章目录 一、背景二、数据仓库2.1 数据仓库概念2.2 数据仓库分层架构2.2.1 数仓分层思想和标准2.2.2 阿里巴巴数仓3层架构2.2.3 ETL和ELT2.2.4 为什么要分层 2.3 数据仓库特征2.3.1 面向主题性2.3.2 集成性2.3.3 非易失性2.3.4 时变性 三、hive库3.1 hive概述3.2 hive架构3.2.…...

前端web

学习笔记&#xff1a; 基本属性 color: 设置文本的颜色。代码&#xff1a;color: red;background-color: 设置元素的背景颜色。background-color: blue;font-size: 设置文本的大小font-size: 16px;font-family: 设置文本的字体font-family: Arial, sans-serif;text-align: 设…...

如何通过 Nginx 实现 CouchDB 集群的负载均衡并监控请求分发

在现代分布式系统中&#xff0c;负载均衡是确保高可用性和性能的关键组件。CouchDB 是一个强大的分布式数据库&#xff0c;而 Nginx 是一个高性能的反向代理和负载均衡器。本文将详细介绍如何通过 Nginx 实现 CouchDB 集群的负载均衡&#xff0c;并监控请求被分发到哪一台 Couc…...

基于代理的RAG实现-Agentic RAG

基于代理的RAG实现-Agentic RAG Agentic RAG 体系结构中&#xff0c;不再被动地响应查询请求&#xff0c;而是主动地分析初步检索到的信息&#xff0c;并基于对任务复杂性的评估&#xff0c;战略性地选择最为合适的工具和方法进行进一步的数据检索和处理。这种多步骤推理和决策…...

ZIP怎么加密?

想要禁止他人随意解压zip压缩包&#xff0c;我们可以加密zip文件&#xff0c;那么zip设置密码的方法有哪些&#xff1f;今天分享三个加密方法 工具&#xff1a;WinRAR&#xff0c;这里需要注意&#xff0c;WinRAR默认压缩格式是.rar&#xff0c;所以我们想要加密zip文件&#…...

森林网络部署,工业4G路由器实现林区组网远程监控

在广袤无垠的林区&#xff0c;每一片树叶的摇曳、每一丝空气的流动&#xff0c;都关乎着生态的平衡与安宁。林区监控正以强大的力量&#xff0c;为这片绿色家园筑起一道坚固的防线。 工业 4G 路由器作为林区监控组网的守护者&#xff0c;凭借着卓越的通讯性能&#xff0c;突破…...

汽车网络信息安全-ISO/SAE 21434解析(上)

目录 概述 第四章-概述 1. 研究对象和范围 2. 风险管理 第五章-组织级网络安全管理 1. 网络安全治理&#xff08;cybersecurity governance&#xff09; 2. 网络安全文化&#xff08;cybersecurity culture) 3. 信息共享&#xff08;Information Sharing) 4. 管理体系…...

一个方法被多个线程同时调用,确保同样参数的调用只能有一个线程执行,不同参数的调用则可以多个线程同时执行

我们知道通过lock一个固定静态object给代码段加同步锁&#xff0c;可以让多个线程的同时调用以同步执行&#xff0c;因此可以利用字典来给不同参数分配不同的静态对象&#xff0c;方法中不同的参数调用锁住各自不同的静态对象即可实现不同参数不加锁&#xff0c;相同参数才加锁…...

军用通信设备通用规范GJB367A-2001试验

军用通信设备通用规范GJB367A-2001通常适用于地面、舰载和机载设备的型式试验验收标准&#xff0c;地面设备分为便携式设备、固定式设备和车载式设备。 GJB367A-2001军用通信设备通用规范规定了军用通信设备或系统的通用要求和检验验收规则以及试验方法。 GJB367A-2001军用通…...

AWS云计算概览(自用留存)

目录 一、云概念概览 &#xff08;1&#xff09;云服务模型 &#xff08;2&#xff09;云计算6大优势 &#xff08;3&#xff09;web服务 &#xff08;4&#xff09;AWS云采用框架&#xff08;AWS CAF&#xff09; 二、云经济学 & 账单 &#xff08;1&#xff09;定…...

AWS云平台上生成式AI通过项目文档内容分析获知项目风险

要在AWS云平台上设计和实施高性能系统&#xff0c;同时使用生成式人工智能识别项目风险来分析项目文档内容。 利用生成式AI分析项目文档并协助风险管理可以显著提高识别和解决AWS上托管的复杂项目中的风险的速度、准确性和效率。通过将AI的功能与传统的项目管理最佳实践相结合&…...

搜广推日常实习面经一

写在前面&#xff1a;除了校招的面经&#xff0c;实习的面经我也会更新&#xff0c;毕竟俺后续可能还要找一段实习。从八股来看&#xff0c;实习的八股更加的八股一点。和校招的面经有点不一样&#xff0c;所以还是可以学习了解一下。总之一句话&#xff1a;面向工作学习&#…...

分布式CAP理论介绍

分布式CAP理论是分布式系统设计中的一个核心概念,由加州大学伯克利分校的Eric Brewer教授在2000年的ACM研讨会上首次提出,随后在2002年由Seth Gilbert和Nancy Lynch从理论上证明。以下是对分布式CAP理论的详细剖析: 文章目录 一、CAP理论的基本概念二、CAP理论的取舍策略三、…...

网格参数化,Mesh parameterization processing

目录 前言1.Barycentric mappingMapping 步骤实例 2.Laplace mapping3.Laplace improvement4.Coding 前言 多边形网格的类型多种多样。本文所实现的网格多边形参数化是指三角多边形。 不同的表示被用来编码三维物体的几何形状。选择一种表示方式取决于在上游的获取过程和下游的…...

路由环路的产生原因与解决方法(1)

路由环路 路由环路就是数据包不断在这个网络传输&#xff0c;始终到达不了目的地&#xff0c;导致掉线或者网络瘫痪。 TTL &#xff08;生存时间&#xff09;&#xff1a;数据包每经过一个路由器的转发&#xff0c;其数值减1&#xff0c;当一个数据包的TTL值为0是&#xff0c;路…...

编程工具箱(免费,离线可用)

https://www.yuque.com/huanmin-4bkaa/ii1hx1?# 《工具箱》 常用的大部分工具都有, 比如mysql可视化 redis可视化, json编辑器, 加解密等(免费,离线可用) 后续也会慢慢的集成...

从Arrays源码学习定义工具类

背景 在日常编码中&#xff0c;一个比较好的实践是&#xff1a;我们把一些业务无关的、可复用的一些通用逻辑&#xff0c;封装成工具类、甚至jar包。这样一方面方便通用代码抽取、代码复用&#xff0c;同时也隔离经常变动的业务代码和不变的通用代码。那如何定义好一个工具类呢…...

Unity中实现倒计时结束后干一些事情

问题描述&#xff1a;如果我们想实现在一个倒计时结束后可以执行某个方法&#xff0c;比如挑战成功或者挑战失败&#xff0c;或者其他什么的比如生成boss之类的功能&#xff0c;而且你又不想每次都把代码复制一遍&#xff0c;那么就可以用下面这种方法。 结构 实现步骤 创建一…...

FPGA随记——时钟时序一些基本知识

原文链接&#xff1a;跨时钟域设计-CSDN博客 前言 CDC&#xff08;clock domain crossing&#xff09;检查&#xff08;跨时钟域的检查&#xff09;是对电路设计中同步电路设计的检查。非同步时钟没有固定的相位关系&#xff0c;这样Setup/Hold不满足而产生了亚稳态是无法避免…...

【微服务】SpringBoot 通用异常处理方案使用详解

目录 一、前言 二、SpringBoot 异常介绍 2.1 SpringBoot 中异常定义 2.1.1 SpringBoot 异常处理机制的重要性 2.2 常用的异常分类 2.3 常用的异常处理解决方案 三、springboot 异常处理操作实践 3.1 springboot自适应错误处理机制 3.1.1 使用默认错误页面 3.1.2 自定义…...

初识MyBatis(详细)

目录 回顾 前提回忆下web应用程序的三层架构&#xff1a; ​编辑 一.什么是MyBatis&#xff1f; 二.Mybatis操作数据库的步骤&#xff1a; 2.1准备工作 2.2配置Mybatis(数据库连接信息&#xff09; 2.3写持久层代码 2.4测试 三.Mybatis配置文件 3.1打印日志 3.2参数传递…...

elementui表单验证,数据层级过深验证失效

先看示例代码&#xff0c;代码为模拟动态获取表单数据&#xff0c;然后动态添加rules验证规则&#xff0c;示例表单内输入框绑定form内第四层&#xff1a; <template><el-form :model"form" :rules"rules" ref"ruleForm" label-width&…...

HTTPS与HTTP:区别及安全性对比

目录 一、基础概念 二、安全性对比 1. 加密传输 2. 身份验证 3. 数据完整性 4. 端口 5. 浏览器展示方式 三、使用场景与性能 1. 使用场景 2. 性能开销 四、成本与维护 五、搜索引擎优化&#xff08;SEO&#xff09; 六、案例分析 七、隐私保护与中间人攻击 八、…...