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

GitHub 新手入门指南

一、GitHub 简介

GitHub 是全球最大的代码托管平台,它基于 Git 版本控制系统,为开发者提供了一个集中存储、管理和协作开发代码的空间。在这里,你可以找到无数开源项目,也可以将自己的项目与全球开发者社区共享,促进知识交流与技术创新。无论是个人开发者独自探索新技术,还是团队协作开发大型软件项目,GitHub 都能满足各种规模的开发需求,是现代软件开发不可或缺的重要工具。

二、注册与安装

  1. 注册 GitHub 账号
    • 访问 GitHub 官网(https://github.com/),在首页点击 “Sign up” 按钮。
    • 填写用户名、邮箱地址和密码等信息,注意用户名应具有唯一性且符合平台规定,邮箱地址要确保可用,因为后续重要通知和操作验证都会通过邮箱进行。完成信息填写后,点击 “Create account” 按钮提交注册申请,之后可能需要通过邮箱验证来激活账号。
  2. 安装 Git 客户端
    • Windows 系统:
      • 访问 Git 官方网站(https://git-scm.com/downloads),下载 Windows 版本的 Git 安装包。
      • 运行安装程序,在安装向导中,按照默认设置进行安装即可,不过也可以根据个人需求自定义安装路径等选项。安装完成后,在开始菜单中找到 “Git Bash”,这是一个命令行工具,用于在 Windows 环境下执行 Git 命令。
    • Mac 系统:
      • Mac 通常自带 Git,如果没有,可以通过 Homebrew 安装。打开终端,执行brew install git命令,Homebrew 会自动下载并安装 Git 及其依赖项。
    • Linux 系统(以 Ubuntu 为例):
      • 在终端中执行sudo apt-get install git命令,系统会自动安装 Git,安装过程中可能会提示输入用户密码以获取安装权限。

三、创建第一个 GitHub 仓库

  1. 登录 GitHub
    • 打开 GitHub 官网,使用注册好的账号登录。
  2. 创建仓库
    • 登录后,点击页面右上角的 “+” 号,选择 “New repository”。
    • 在 “Repository name” 字段中输入仓库名称,例如 “my-first-project”,仓库名称应简洁明了且能准确反映项目内容。可以选择仓库的可见性,“Public” 表示仓库是公开的,任何人都可以访问和查看;“Private” 则表示仓库是私有的,只有你和你授权的人可以访问,私有仓库对于商业项目或个人隐私项目非常有用。还可以添加仓库描述,简要介绍项目的用途、功能等信息,方便自己和他人日后了解项目概况。勾选 “Initialize this repository with a README” 选项,这样会自动创建一个 README.md 文件,用于记录项目的基本信息,如项目介绍、使用方法、安装步骤等,这是一个良好的项目开始方式,有助于他人快速了解你的项目。最后点击 “Create repository” 按钮,完成仓库创建。

四、本地仓库与 GitHub 仓库关联及代码拉取

  1. 在本地创建文件夹
    • 在本地文件系统中,选择一个合适的位置,例如在 “Documents” 文件夹下创建一个名为 “my-first-project” 的文件夹,这个文件夹名称应与 GitHub 上的仓库名称一致,方便管理和识别。
  2. 初始化本地仓库
    • 打开 Git Bash(Windows)或终端(Mac、Linux),进入刚刚创建的文件夹。执行git init命令,这将在该文件夹中初始化一个本地 Git 仓库,会生成一个隐藏的.git文件夹,用于存储版本控制信息,此时本地仓库已经准备好进行版本管理操作。
  3. 关联远程仓库
    • 在 GitHub 仓库页面,点击 “Code” 按钮,复制仓库的 SSH 地址(如果没有配置 SSH 密钥,也可以使用 HTTPS 地址,但 SSH 方式更安全且操作更简便)。
    • 在本地仓库的命令行中,执行git remote add origin [仓库地址],将本地仓库与 GitHub 上的远程仓库进行关联,其中[仓库地址]替换为刚刚复制的 SSH 或 HTTPS 地址。例如:git remote add origin git@github.com:your-username/my-first-project.git
  4. 拉取代码
    • 执行git pull origin master命令,将远程仓库的代码拉取到本地。由于我们在创建仓库时勾选了初始化 README 文件,此时本地文件夹中会出现 README.md 文件,这是从远程仓库拉取下来的初始文件,代表远程仓库的初始状态,现在本地仓库已经与远程仓库同步,并且包含了初始的项目文件。

五、代码提交与推送

  1. 创建并编辑文件
    • 在本地仓库文件夹中,使用文本编辑器创建一个新的文件,例如 “index.html”,并在其中编写一些简单的 HTML 代码,如:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>My First Page</title>
</head>
<body><h1>Hello, GitHub!</h1>
</body>
</html>
  1. 查看文件状态
    • 在命令行中,执行git status命令,会看到 “index.html” 文件显示为未跟踪状态,因为它是新创建的文件,Git 还没有对其进行版本控制。
  2. 添加文件到暂存区
    • 执行git add index.html命令,将 “index.html” 文件添加到暂存区,此时该文件已经被标记为准备提交的状态。也可以使用git add.命令将所有修改和新创建的文件添加到暂存区,但对于明确的文件逐个添加可以更好地控制提交内容,确保每次提交的代码都是经过精心整理和测试的。
  3. 提交文件
    • 执行git commit -m "Add index.html"命令,其中-m后面的字符串是提交的注释,简要说明本次提交的内容,如添加了index.html文件。这个注释对于后续查看版本历史非常重要,应清晰准确地描述提交的更改,以便自己和其他开发者了解代码的变更意图和逻辑。
  4. 推送代码到远程仓库
    • 执行git push origin master命令,将本地仓库的提交推送到 GitHub 上的远程仓库。此时,登录 GitHub 仓库页面,刷新后就可以看到刚刚提交的index.html文件已经出现在仓库中,完成了代码从本地到远程的提交和推送过程,代码被安全地存储在 GitHub 上,并且可以与团队成员共享或在其他设备上继续开发,确保了代码的备份和可访问性。

六、分支管理

  1. 创建分支
    • 在本地仓库的命令行中,执行git branch dev命令,创建一个名为 “dev” 的分支。分支是 Git 中非常强大的功能,它允许开发者并行开发不同的功能或修复不同的问题,而不影响主分支(master)的稳定性。例如,当团队成员在开发新功能时,可以在 “dev” 分支上进行,而主分支保持可发布的稳定状态,避免因为新功能开发过程中的不稳定代码影响整个项目的正常运行。
  2. 切换分支
    • 执行git checkout dev命令,切换到 “dev” 分支。此时,在该分支上进行的代码修改、提交等操作都与主分支隔离,不会影响主分支的代码状态。可以在 “dev” 分支上自由地进行实验性的开发和功能迭代,而不用担心对主分支造成破坏。
  3. 在分支上开发
    • 在 “dev” 分支上,继续编辑index.html文件,添加一些新的内容,如:
<p>This is a new paragraph added in the dev branch.</p>

然后按照前面的步骤,使用git addgit commit命令提交更改,例如:git commit -m "Add new content in dev branch",这样就在 “dev” 分支上记录了新的开发进展,同时保持了主分支的独立性和稳定性。
4. 合并分支

  • 当 “dev” 分支上的开发完成并经过测试后,可以将其合并到主分支。首先切换回主分支,执行git checkout master命令。
  • 然后执行git merge dev命令,将 “dev” 分支的代码合并到主分支。如果在合并过程中没有冲突,主分支将更新为包含 “dev” 分支的新代码。如果出现冲突,Git 会提示哪些文件存在冲突,需要手动打开这些文件,解决冲突后再提交合并结果,确保合并后的代码能够正常运行。
  1. 删除分支
    • 合并完成后,如果不再需要 “dev” 分支,可以执行git branch -d dev命令删除该分支。这样可以保持分支的整洁,避免过多无用分支的存在,使项目的版本历史更加清晰易读,方便后续的代码维护和版本管理工作。

七、团队协作与 GitHub

  1. 邀请团队成员
    • 在 GitHub 仓库页面,点击 “Settings” 按钮,进入仓库设置界面。
    • 在左侧菜单中选择 “Collaborators” 选项,在 “Collaborators” 页面,输入要邀请的团队成员的 GitHub 账号,并点击 “Add collaborator” 按钮。被邀请的成员会收到邀请通知,他们需要接受邀请后才能获得对仓库的访问权限,根据你设置的权限级别(如读权限、写权限等),成员可以进行相应的操作,如查看代码、提交代码、创建分支等,从而实现团队成员之间的协作开发。
  2. 处理团队成员的提交
    • 当团队成员向仓库提交代码后,其他成员可以通过git pull origin [分支名称]命令拉取最新的代码,查看并审查成员的提交内容。如果发现问题,可以在本地进行修改并提交回仓库,或者通过 GitHub 的代码审查功能(如提交评论、建议等)与提交代码的成员进行沟通交流,确保代码质量和项目的正常推进。此外,GitHub 还提供了 Pull Request(合并请求)功能,团队成员可以通过创建 Pull Request 来提议将自己的代码合并到主分支或其他目标分支,在 Pull Request 中可以详细描述代码的变更内容、目的以及相关的测试情况,方便团队进行更系统、更规范的代码审查和合并流程,提高团队协作的效率和代码质量。

八、GitHub 的其他功能

  1. Issues 功能
    • 在 GitHub 仓库中,可以使用 Issues 功能来记录项目中的问题、任务、需求等。点击 “Issues” 标签,然后点击 “New issue”,填写相关信息,如问题标题、描述、优先级、负责人等。团队成员可以针对每个 Issue 进行讨论、更新状态(如未解决、已解决、进行中),通过 Issues 功能可以有效地跟踪项目的进度和解决项目中出现的各种问题,提高团队协作的效率和透明度。例如,在开发过程中发现了一个代码漏洞,就可以创建一个 Issue,详细描述漏洞的情况,分配给相应的开发人员进行修复,其他成员可以在 Issue 中关注修复进度并提供建议,确保问题得到及时、有效的解决。
  2. Wiki 功能
    • Wiki 可以用于创建项目的文档,包括项目介绍、使用指南、开发规范、API 文档等。点击 “Wiki” 标签,然后点击 “New page”,使用 Markdown 语法编写文档内容。Wiki 页面可以方便团队成员共享知识和信息,对于新成员快速上手项目以及团队内部的沟通协作都具有重要作用,有助于提升项目的整体管理水平和团队的开发效率。例如,一个新成员加入项目,他可以通过 Wiki 中的项目介绍和开发规范快速了解项目的架构和代码风格,从而更快地融入团队开发工作中。
  3. GitHub Pages
    • 如果项目是一个前端项目(如 HTML、CSS、JavaScript 项目),可以使用 GitHub Pages 将项目部署为静态网页,方便展示项目成果。在仓库设置中找到 “GitHub Pages” 选项,按照提示进行配置,选择要部署的分支和目录,然后点击 “Save” 按钮。部署完成后,会生成一个网页访问地址,通过该地址可以访问项目的页面,向他人展示项目的实际效果,对于开源项目的推广和个人项目的展示都非常实用。例如,一个开发者创建了一个个人博客项目,通过 GitHub Pages 部署后,就可以将博客分享给朋友和其他开发者,展示自己的技术成果和写作能力。

通过以上步骤和功能的介绍,新手开发者可以在 GitHub 上顺利地进行项目的创建、开发、协作以及代码管理等一系列操作,充分利用 GitHub 提供的强大功能,提升开发效率和项目管理水平,开启高效的代码托管与协作开发之旅。

相关文章:

GitHub 新手入门指南

一、GitHub 简介 GitHub 是全球最大的代码托管平台&#xff0c;它基于 Git 版本控制系统&#xff0c;为开发者提供了一个集中存储、管理和协作开发代码的空间。在这里&#xff0c;你可以找到无数开源项目&#xff0c;也可以将自己的项目与全球开发者社区共享&#xff0c;促进知…...

Django后端相应类设计

通用的ApiResponse类&#xff1a;用于生成统一的 API 响应格式。每个响应都包含以下字段&#xff08;每个接口最终的返回数据格式&#xff09;&#xff1a; status_code&#xff1a;HTTP 状态码&#xff08;如 200、400、500 等&#xff09;message&#xff1a;响应的描述信息…...

完美解决VMware 17.0 Pro安装ubuntu、Deepin等虚拟机后卡顿、卡死问题

这两天在 VM 17 Pro 中安装了ubuntu 24.1 和Deepin 23.9 等Linux操作系统&#xff0c;在使用过程中出现过数次卡顿、卡死问题&#xff0c;现记录整理解决方法如下&#xff1a; 一、问题描述 安装虚拟机时、以及安装完成后正常使用时出现鼠标点击卡顿、系统反应慢、卡死等问题…...

前端 图片上鼠标画矩形框,标注文字,任意删除

效果&#xff1a; 页面描述&#xff1a; 对给定的几张图片&#xff0c;每张能用鼠标在图上画框&#xff0c;标注相关文字&#xff0c;框的颜色和文字内容能自定义改变&#xff0c;能删除任意画过的框。 实现思路&#xff1a; 1、对给定的这几张图片&#xff0c;用分页器绑定…...

【Oracle篇】深入了解执行计划中的访问路径(含表级别、B树索引、位图索引、簇表四大类访问路径)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;从事IT领域✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控&#xff1b;并对SQLserver、NoSQL(…...

ROS2+OpenCV综合应用--11. AprilTag标签码跟随

1. 简介 apriltag标签码追踪是在apriltag标签码识别的基础上&#xff0c;增加了小车车体运动的功能&#xff0c;控制车体从而使摄像头会保持标签码在视觉中间左右运动&#xff0c;在根据物体在摄像头成像近大远小的原理根据这一特性&#xff0c;从而实现标签码跟随功能。 2. 启…...

第四、五章图论和网络爬虫+网络搜索

第四章 图论和网络爬虫 4.1 构建网络爬虫工程重点 构建网络爬虫的重点 用BFS还是DFS 在不考虑时间的情况下&#xff0c;这两种不同的搜索方法都可以在相同的时间下爬下整个静态的互联网内容&#xff0c;但是在现实中肯定是需要考虑时间以及互联网动态变化的。所以重点应该是如…...

PyMysql 01|(包含超详细项目实战)连接数据库、增删改查、异常捕获

目录 一、数据库操作应用场景 二、安装PyMysql 三、事务的概念 四、数据库的准备 五、PyMysql连接数据库 1、建立连接方法 2、入门案例 六、PyMysql操作数据库 1、数据库查询 1️⃣查询操作流程 2️⃣cursor游标 ​3️⃣查询常用方法 4️⃣案例 5️⃣异常捕获 …...

(No space left on device )

错误日志&#xff1a; org.springframe tipart.MultipartException: Failed to parse multipart servlet request: nested excepti /ROOT/upload_e5046403_6cd4_4673_3313_479fb76773fe_00000004.tmp (No space left on device ) 分析&#xff1a; (No space left on devi…...

Conmi的正确答案——Cordova使用“src-cordova/config.xml”编辑“Android平台”的“uses-permission”

Cordova版本&#xff1a;12.0.0 (cordova-lib12.0.1) 1、配置例程&#xff1a; <platform name"android"><config-file target"AndroidManifest.xml" parent"/manifest"><uses-permission android:name"android.permission…...

LLaMA-Factory web微调大模型并导出大模型

LLaMA-Factory 开源大模型如LLaMA&#xff0c;Qwen&#xff0c;Baichuan等主要都是使用通用数据进行训练而来&#xff0c;其对于不同下游的使用场景和垂直领域的效果有待进一步提升&#xff0c;衍生出了微调训练相关的需求&#xff0c;包含预训练&#xff08;pt&#xff09;&am…...

针对数据库系统安全的漏洞扫描加固工具【WebSocket + MySQL】

一、系统背景 随着信息技术的迅猛发展和互联网的普及&#xff0c;数据库作为存储、管理和检索大量数据的关键组件&#xff0c;其安全性对于企业和组织来说至关重要。然而&#xff0c;由于网络环境的复杂性和攻击手段的多样性&#xff0c;数据库面临着越来越多的安全威胁&#…...

汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2)

汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2) 下面我们继续来介绍AutoSAR CP分层架构&#xff0c;下面的文字和图来自AutoSAR官网目前最新的标准R24-11的分层架构手册。该手册详细讲解了AutoSAR分层架构的设计&#xff0c;下面让我们来一起学习一下。 Introductio…...

《PC 上的开源神经网络多模态模型:开启智能交互新时代》

《PC 上的开源神经网络多模态模型&#xff1a;开启智能交互新时代》 一、引言二、多模态模型基础剖析&#xff08;一&#xff09;核心概念解读&#xff08;二&#xff09;技术架构探秘 三、开源多模态模型的独特魅力&#xff08;一&#xff09;开源优势尽显&#xff08;二&…...

Docker Desktop 构建java8基础镜像jdk安装配置失效解决

Docker Desktop 构建java8基础镜像jdk安装配置失效解决 文章目录 1.问题2.解决方法3.总结 1.问题 之前的好几篇文章中分享了在Linux(centOs上)和windows10上使用docker和docker Desktop环境构建java8的最小jre基础镜像&#xff0c;前几天我使用Docker Desktop环境重新构建了一个…...

【算法】八大排序算法

这篇文章是对数据结构中 八大经典排序算法 的详解&#xff0c;包括其原理、实现过程、时间复杂度、空间复杂度及其适用场景。最后两种排序不常见&#xff0c;但仍收录了进来保持文章结构的完整性。 排序(Sort)是将无序的记录序列&#xff08;或称文件&#xff09;调整成有序的…...

pytest+allure 入门

使用allure如何生成自动化测试报​​​​​​告 &#xff1f;一文详解allure的使用 。_allure测试报告-CSDN博客 例子&#xff1a; import allure import pytest import osallure.epic("闹钟") allure.feature("闹钟增删") class TestSchedule():def setu…...

算法--最大公约数,最小公倍数

1. 求两个数的最大公约数&#xff0c;最小公倍数 解释&#xff1a;这里Mymin和Mymax函数是自定义用于获取两数最大值和最小值的 求最大公约数的时候只需要得到两数之中最小的一项&#xff0c;向下逐个判断直到等于1 求最小公倍数的时候只需要得到两数之中最大的一项&#xf…...

【跨域问题】

跨域问题 官方概念&#xff1a; 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域本质来说&#xff0c;是前端请求给到后端时候&#xff0c;请求头里面&#xff0c;有一个 Origin &#xff0c;会带上 协议域名端口号等&#xff1b;后端接受到请求&…...

为什么在二维卷积操作中,将宽度(W)维度放在高度(H)之前会破坏空间局部性原则,并影响缓存性能

空间局部性原则 空间局部性指的是程序倾向于访问与最近访问过的内存位置接近的内存位置。对于深度学习模型中的张量数据&#xff0c;这意味着当处理图像或特征图时&#xff0c;如果能够连续地访问相邻像素的数据&#xff0c;那么可以最大化利用CPU/GPU缓存&#xff0c;因为缓存…...

【C语言】_函数指针数组/转移表与回调函数

目录 1. 示例1&#xff1a;函数指针数组的简单使用 2. 示例2&#xff1a;多同类型函数调用 2.1 switch-case实现 2.2 switch-case函数指针 2.3 函数指针数组实现 3. 回调函数 关于函数指针&#xff0c;专栏文章链接如下&#xff1a;【C语言】_函数指针变量-CSDN博客https…...

《通过财报看企业》

“借贷关系”“净资产收益率”“财务报表”、净利润、盈利能力、现金流 第1章 净利润&#xff1a;决定一家公司的股价能涨多高 企业经营&#xff1a;存货周转率 企业市值&#xff1a;市值净利润市盈率 龙头企业&#xff1a;行业内收入规模最大、盈利能力最强&#xff0c;…...

年度技术突破奖|中兴微电子引领汽车芯片新变革

随着以中央计算区域控制为代表的新一代整车电子架构逐步成为行业主流&#xff0c;车企在电动化与智能化之后&#xff0c;正迎来以架构创新为核心的新一轮技术竞争。中央计算SoC&#xff0c;作为支撑智驾和智舱高算力需求的核心组件&#xff0c;已成为汽车电子市场的重要新增量。…...

力扣经典题目之912.排序数组(使用希尔排序解决)

今天继续给大家分享一道力扣的做题心得今天这道题目是 912.排序数组 题目链接&#xff1a;912. 排序数组 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a;给你一个整数数组 nums&#xff0c;请你将该数组升序排列。 你必须在 不使用任何内置函数 的情况下解决问题…...

QT升级及下载缓慢的问题解决办法

QT升级及下载缓慢的问题解决办法 QT安装慢解决办法&#xff1a; 官方下载地址: https://www.qt.io/download-dev 点开后点击download 填写相关信息后即可下载完成 线上安装工具。 安装工具&#xff08;qt-online-installer-windows-x64-4.8.1.exe&#xff09; 如下图: 此时不…...

List详解 - 双向链表的操作

在C中&#xff0c;std::list是标准模板库&#xff08;STL&#xff09;中的一个容器&#xff0c;它实现了双向链表的数据结构。与数组或向量&#xff08;std::vector&#xff09;不同&#xff0c;std::list允许在常数时间内进行插入和删除操作&#xff0c;尤其是在链表的任意位置…...

公众号如何通过openid获取unionid

通过接口 https://api.weixin.qq.com/cgi-bin/user/info?access_tokenxxxxxxx&langzh_CN 返回的数据如下&#xff1a; 前提是必须绑定 微信开放平台 token如何获取呢 代码如下&#xff1a; String tokenUrl "https://api.weixin.qq.com/cgi-bin/token"; …...

AIP-1 AIP目的和指南

原文AIP-1: AIP Purpose and Guidelines 随着Google API数量不断增加&#xff0c;API治理团队不断扩张&#xff0c;以满足API维护工作需求。越来越有必要为API生产者、审查者和其他相关方提供一套参考文档。API风格指南和一站式介绍文档简洁扼要。AIP集合提供了一种产出一致性…...

【学习】CMMM智能制造能力成熟度评估的重要性

CMMM认证通过对企业当前生产状态的全面评估&#xff0c;能够精准地确定其智能化生产的程度&#xff0c;并将企业的智能化生产水平划分为五个等级&#xff0c;包括初始级、已定义级、以管理级、卓越级和顶级。这种等级划分使得不同类型的企业能够根据自身实际情况&#xff0c;选…...

WebGIS在应急灾害中对村庄、风景区、机场的影响范围应用-以日喀则市定日县地震为例

目录 前言 一、关于影响范围 1、震中距离5公里 2、震中20公里范围 3、20到80公里范围 二、空间查询知识 1、相关数据介绍 2、空间数据查询 三、前后端数据查询以及web可视化实现 1、后台API实现 2、WebGIS前端实现 四、Web成果展示 1、空间位置分析 2、包含风景区…...

Flink系列知识讲解之:网络监控、指标与反压

Flink系列知识之&#xff1a;网络监控、指标与反压 在上一篇博文中&#xff0c;我们介绍了 Flink 网络协议栈从高层抽象到底层细节的工作原理。本篇博文是网络协议栈系列博文中的第二篇&#xff0c;在此基础上&#xff0c;我们将讨论如何监控网络相关指标&#xff0c;以识别吞…...

Postman接口测试05|实战项目笔记

目录 一、项目接口概况 二、单接口测试-登录接口&#xff1a;POST 1、正例 2、反例 ①姓名未注册 ②密码错误 ③姓名为空 ④多参 ⑤少参 ⑥无参 三、批量运行测试用例 四、生成测试报告 1、Postman界面生成 2、Newman命令行生成 五、token鉴权&#xff08;“…...

人工智能学习路线全链路解析

一、基础准备阶段&#xff08;预计 2-3 个月&#xff09; &#xff08;一&#xff09;数学知识巩固与深化 线性代数&#xff08;约 1 个月&#xff09;&#xff1a; 矩阵基础&#xff1a;回顾矩阵的定义、表示方法、矩阵的基本运算&#xff08;加法、减法、乘法&#xff09;&…...

图像处理 | 图像二值化

在图像处理领域&#xff0c;图像二值化是一个重要的操作&#xff0c;它将彩色或灰度图像转换为只有两种颜色&#xff08;通常是黑白&#xff09;的图像。二值化广泛应用于文字识别、图像分割、边缘检测等领域&#xff0c;尤其在处理简洁和高对比度的图像时非常有效。本文将深入…...

ASP.NET Core 中服务生命周期详解:Scoped、Transient 和 Singleton 的业务场景分析

前言 在 ASP.NET Core 中&#xff0c;服务的生命周期直接影响应用的性能和行为。通过依赖注入容器 (Dependency Injection, DI)&#xff0c;我们可以为服务定义其生命周期&#xff1a;Scoped、Transient 和 Singleton。本文将详细阐述这些生命周期的区别及其在实际业务中的应用…...

鼠标自动移动防止锁屏的办公神器 —— 定时执行专家

目录 ◆ 如何设置 ◇ 方法1&#xff1a;使用【执行Nircmd命令】任务 ◇ 方法2&#xff1a;使用【模拟键盘输入】任务 ◆ 定时执行专家介绍 ◆ 定时执行专家最新版下载 ◆ 如何设置 ◇ 方法1&#xff1a;使用【执行Nircmd命令】任务 1、点击工具栏第一个图标【新建任务】&…...

开源库:jcon-cpp

说明 jcon-cpp 是一个用于 C 的 JSON-RPC 库&#xff0c;它允许开发者通过 JSON-RPC 协议进行进程间通信&#xff08;IPC&#xff09;。JSON-RPC 是一种轻量级的远程过程调用协议&#xff0c;基于 JSON 格式数据进行通信。基于MIT协议&#xff0c;最新代码基于Qt6实现。可通过…...

Docker入门之docker基本命令

Docker入门之docker基本命令 官方网站&#xff1a;https://www.docker.com/ 1. 拉取官方镜像并创建容器&#xff08;以redis为例&#xff09; 拉取官方镜像 docker pull redis# 如果不需要添加到自定义网络使用这个命令&#xff0c;如需要&#xff0c;直接看第二步 docker r…...

C++ Qt练习项目 QChar功能测试

个人学习笔记 代码仓库 GitCode - 全球开发者的开源社区,开源代码托管平台 新建项目 设计UI 1、拖入group box去掉名字 2、拖入2个LineEdit 3、拖入两个Label 4、拖入两个PushButton 5、点栅格布局 1、拖入GroupBox 2、拖入4个PushButton 3、点栅格布局 1、拖入GroupBo…...

Taro+react 开发第一节创建 带有redux状态管理的项目

Taro 项目基于 node&#xff0c;请确保已具备较新的 node 环境&#xff08;>16.20.0&#xff09;&#xff0c;推荐使用 node 版本管理工具 nvm 来管理 node&#xff0c;这样不仅可以很方便地切换 node 版本&#xff0c;而且全局安装时候也不用加 sudo 了。 1.安装 npm inf…...

【SOC 芯片设计 DFT 学习专栏 -- RTL 中的信号名和 Netlist 中的信号名差异】

Overview 本文将介绍 soc 设计中 RTL-to-Netlist 映射及 RTL 中的信号名和 Netlist 中的信号名差异&#xff0c; 在 SoC设计中&#xff0c;RTL-to-Netlist映射 是从RTL&#xff08;Register Transfer Level&#xff09;代码转换为Netlist的过程。这通常涉及将用硬件描述语言&…...

551 灌溉

常规解法&#xff1a; #include<bits/stdc.h> using namespace std; int n,m,k,t; const int N105; bool a[N][N],b[N][N]; int cnt; //设置滚动数组来存贮当前和下一状态的条件 //处理传播扩散问题非常有效int main() {cin>>n>>m>>t;for(int i1;i&l…...

计算机网络之---OSI七层模型

为什么会有七层模型 OSI七层模型的出现源于计算机网络技术的发展需求&#xff0c;主要解决以下几个问题&#xff1a; 标准化与互操作性 随着计算机网络的快速发展&#xff0c;不同厂商、不同技术之间的设备和系统需要能够无缝通信。而不同厂商在网络硬件、软件、协议等方面存在…...

spring task使用

Spring Task 简介 Spring Task 是 Spring 框架原生自带的任务调度框架&#xff0c;它犹如一把瑞士军刀&#xff0c;为开发者提供了丰富多样的功能&#xff0c;助力轻松创建和管理定时任务。相较于其他一些第三方任务调度框架&#xff0c;Spring Task 最大的优势在于其与 Sprin…...

ADB->查看进程并强杀进程

查看进程 adb shell ps | findstr com.example.myapplication// result u0_a275 26312 914 17185988 193260 do_freezer_trap 0 S com.example.myapplication用户USER: u0_a275 该字段表示运行此进程的用户。在 Android 中&#xff0c;应用通常以 uN_aM 的格式表…...

Qt重写webrtc的demo peerconnection

整个demo为&#xff1a; 可以选择多个编码方式&#xff1a; cmake_minimum_required(VERSION 3.5)project(untitled LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON)set(CMA…...

comfyui精准作图之gligen

简介 在 Stable Diffusion&#xff08;SD&#xff09;中&#xff0c;GLIGEN 是一种用于增强文本到图像生成模型可控性的技术。它通过在现有的预训练扩散模型&#xff08;如 Stable Diffusion&#xff09;基础上&#xff0c;引入额外的定位输入&#xff08;如边界框、关键点或参…...

再次梳理ISP的大致流程

前言&#xff1a; 随着智能手机的普及&#xff0c;相机与我们的生活越来越紧密相关。在日常生活中&#xff0c;我们只需要轻轻按下手机上的拍照按钮&#xff0c;就能记录下美好时刻。那么问题来了&#xff1a;从我们指尖按下拍照按钮到一张色彩丰富的照片呈现在我们面前&#x…...

系统思考与因果智慧

“众生畏果&#xff0c;菩萨畏因”&#xff0c;这句话蕴藏着深厚的因果智慧&#xff0c;与系统思考不谋而合。 众生畏果&#xff0c;体现了大多数人的行为模式&#xff1a;关注的是眼前的问题与结果&#xff0c;比如失败、冲突、痛苦。正如在系统思考中&#xff0c;我们称之为…...

k8s排错集:zk集群的pod报错 Init:CrashLoopBackOff无法启动

zk三节点集群&#xff0c;zk-0无法启动 statefulset 进到该node节点上查看容器的报错日志&#xff0c;发现在初始化container的时候一个命令有问题 查看正常zk集群的pod的资源配置文件 解决办法&#xff1a; 修改资源配置文件 应该修改为 chown -R 1000:1000 /zkenv kubec…...