工具篇-完整的 Git 项目管理工具教程(在命令框中使用 Git、在 IDEA 中使用 Git)

news2024/11/24 14:20:16

🔥博客主页: 【小扳_-CSDN博客】
❤感谢大家点赞👍收藏⭐评论✍

文章目录

        1.0 Git 概述

        2.0 Git 的安装和配置

        3.0 获取本地仓库

        3.1 基础操作指令

        3.2 分支

        4.0 Git 远程仓库

        4.1 创建远程仓库

        4.2 配置 SSH 公钥

        4.3 操作远程仓库

        5.0 使用 IEAD 中使用 Git

        5.1 在 IDEA 中配置 Git

        5.2 在 IDEA 中操作 Git


        1.0 Git 概述

        Git 是一种分布式版本控制系统,用于跟踪文件的修改以及协作开发中的源代码管理。它由 Linus Torvalds 于 2005 年创建,主要用于支持 Linux 内核的开发。以下是 Git 的一些关键概述:

        1)分布式架构:每个开发者的工作站都可以完整地克隆整个版本库,拥有所有文件和版本历史。这使得 Git 的操作更加高效,即使在没有网络的情况下也能进行大多数操作。

        2)版本控制:Git 能够记录文件的所有修改历史,这样开发者可以轻松地回滚到先前的版本,比较不同版本间的差异,以及恢复误删的内容。

        3)速递(Snapshot):Git 采用“快照”的概念管理文件,而不是简单的差异记录。每当你提交变化(commit)时,Git 会记录文件的当前状态,形成一个新的快照。

        4)分支与合并:Git 允许创建多个分支(branches),使得开发人员可以独立于主线进行功能开发和实验。分支的合并(merge)也相对简单,并且可以处理重复修改的情况。

        5)高效性:Git 的设计目标使其在处理大文件和历史记录时效率极高,操作大多数都是本地进行,快速响应。

        6)开放源代码:Git 是开源的,这意味着任何人都可以使用、修改和分发其源代码,促进了广泛的社区支持和插件开发。

        7)工作流程:Git 提供了许多工作流程,如集中式工作流、功能分支工作流、GitFlow等,适合不同规模和类型的项目。

        8)平台支持:Git 支持多个操作系统,包括 Linux、Windows 和 macOS,且与许多代码托管平台(如 GitHub、GitLab 和 Bitbucket)兼容,增强了协作能力。

Git 工作流程图:

        1)clone 克隆:从远程仓库中克隆代码到本地仓库。

        2)checkout 检出:从本地仓库中检出一个分库分支然后进行修订。

        3)add 添加:在提交前先将代码提交到暂存区。

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

        5)fetch 抓取:从远程库抓取到本地仓库中,不进行任何的合并动作,一般操作比较少。

        6)pull 拉取:从远程库拉到本地库,自动进行合并,然后放到工作区,相当于 fetch + merge

        7)push 推送:修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库。

        2.0 Git 的安装和配置

        Git 的下载:Git (git-scm.com)

选择:

        接着,本地就得到了安装包:

        再接着双击,全部直接采取默认配置,一直点 next 即可。如果需要特殊配置,可以进行选择,一般选择默认配置完全够用了。

        最后,安装完成之后:

        可以看到这两个工具,最常使用的是通过命令来操作。

        当安装完 Git 之后首先要做的事情是设置用户名和 email 地址。这是非常重要的,因为每次 Git 提交都会使用该用户信息。

        1)打开 Git Bash:

        2)设用用户信息:

        设置用户信息命令:

该命令设置为: 设置用户名
git config --global user.name "用户名"

该命令设置为: 设置邮箱
git config --global user.email "邮箱"

        查看当前用户信息命令:

查看用户名:
git config --global user.name

查看邮箱:
git config --global user.email

举个例子:

为常用指令配置别名:

        有些常用的指令参数非常多,每次都要输入好多参数,此时就可以使用别名。

        1)打开用户目录,创建 .bashrc 文件

        部分 windows 系统不允许用户创建点号开头的文件,可以打开 gitBash,执行: touch ~/.bashrc 命令。

        2)在 .bashrc 文件中输入如下内容:

#用于输出 git 提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'

        可以通过 vi 指令的方式,将以上命令粘贴到 .bashrc 文件中,小提示:粘贴的时候,不能通过 crt + v 的方式,在 gitBash 中通过点击鼠标滚轮进行粘贴。如果从 gitBash 中复制内容,选中需要复制的内容即可。

        

        3.0 获取本地仓库

        要使用 Git 对我们的代码进行版本控制,首先需要获得本地仓库:

        1)在本地任意位置创建一个空目录,作为我们本地 Git 仓库。

        2)进入这个目录中,点击右键打开 Git Bash 窗口。

        3)执行命令 git init

        4)如果创建成功后可在文件夹下看到隐藏的 .git 目录。

举个例子:

        3.1 基础操作指令

        Git 工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着执行的 Git 的命令而发生变化。

        1)查看修改的状态

        查看的修改状态(暂存区、工作区)。

        命令形式:

git status

        当前创建 text02.txt 文件,再来通过 git status 指令查看修改状态。

        2)添加工作区到暂存区

        添加工作区一个或多个文件的修改到暂存区。

        通过 git add 单个文件名或者通配符,比如:'git add .' 将所有修改加入暂存区、'git add text02.txt' 将 'text.txt02' 文件的修改放到暂存区。

git add

举个例子:

        通过 git add . 指令,将文件添加到暂存区中,再来通过 git status 指令查看当前状态。

        3)提交暂存区到本地仓库

        提交暂存区内容到本地仓库的当前分支。

        命令形式:

git commit -m '注释内容'

举个例子:

        通过 git commit -m 'commit text02' 指令将其提交到本地仓库中,接着通过 git status 指令来查看暂缓区、工作区情况。可以看到,此时为空状态,无需提交任何内容,工作树干净。
        4)查看提交日志

        在之前配置中,配置了日志相关的信息。通过 git-log 指令来查看提交记录。

git-log

举个例子:

        通过 git-log 来查看提交的日志,之前将 text01 进行了提交,d2ec3cd 可以将其理解为唯一标识,通过该唯一标识可以进行回滚到指定的版本。在日志文件中,处于最开头的日志是最新的日志。HEAD->master:当前的分支为 master 的主分支。

        通过 git-log 是来查看提交的日志,而 git status 是来查看暂缓区、工作区的情况。

        5)版本回退

        版本切换,通过命令形式:

git reset --hard commitID

        commitID 可以使用 git-log 或者 git log 指令查看。

举个例子:

        回退到 d2ec3cd 版本之后,发现 text02.txt 文件消失了,再通过日志查看,当前状态为 d2ec3cd 。这就是回滚到 d2ec3cd 版本状态。

        可以再次回滚到 a5ee363 版本,恢复 text02.txt 文件:

        6)添加文件至忽略列表

        一般总会有些文件无需纳入 git 的管理,也不希望这些文件出现在未跟踪文件列表。通常都是一些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。在这种情况下,可以在工作目录中创建一个名 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。

举个例子:

        - 创建 .gitignore 文件:

        - 编辑 .gitignore

        比如说,将 .a 文件为后缀的不需要进行 git 的管理,则在 .gitignore 文件添加 .a 即可:

        提交 .gitignore 文件:

        此时可以发现 ign.a 还未添加、提交到本地中,现在来查看当前工作区情况:

        此时工作区表示没有文件需要提交,工作树很干净。这就说明了已经忽略 ign.a 文件。

        3.2 分支

        几乎所有的版本控制系统都以某种形式支持分支,使用分支意味着可以把你的工作从开发主线上分离开来进行重大 Bug 修改、开发新的功能,以免影响开发主线。

        1)查看本地所有分支

        命令:

git branch

举个例子:

        当前分支就只有一个 master 主分支。 

        2)创建本地分支

        命令:

git branch 分支名

举个例子:

        成功创建本地分支,不过当前还是处于 master 主分支上。

        3)切换分支

git checkout 分支名

 举个例子:

        从 master 主分支切换到 dev01 分支上。 

        还可以直接切换到不存在的分支(创建并切换)

git checkout -b 分支名

举个例子:

        创建了 dev02 分支且切换到 dev02 分支上。 

        4)合并分支

        一个分支上的提交可以合并到另一个分支。

        命令:

git merge 分支名称

举个例子:

        当前是 dev02 分支,在该分支上创建且提交了 text03 文件:

        接着来到 master 分支上:

        可以看到,此时在 master 分支上不存在 text03 文件。

        接着将 dev02 分支合并到 master 分支上:

        合并完之后,在 master 分支上就出现了 text03 文件了,从日志中看到,此时 master和 dev02  分支都在同一个版本,而 dev01 在先前没有 text03 的版本。

        5)删除分支

        不能删除当前分支,只能删除其他分支。

        删除分支时,需要做各种检查:

git branch -d 分支名

举个例子:

        删除分支 dev02:

        删除分支时,不需要做任何检查,强制删除:

git branch -D 分支名

        6)解决冲突

        当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:

        - 处理文件中冲突的地方

        - 将解决完冲突的文件加入暂存区

        - 提交到仓库

举个例子:

        在当前版本上创建了 dev01 分支:

        接着,在 master 分支上修改 text03 文件:

        添加了一行 "Hello Git" 。

        将其添加且提交到本地仓库中:

        再切换到 dev01,也是对 text03 文件进行修改:

        修改的地方是一样的,但是不同内容。

        再接着,将 dev01 合并到 master 过程中就会出现冲突:

        合并失败,此时可以查看 text03 文件:

        因为两个分支对同一个地方进行了修改,git 也不知道如何来解决。

        因此,可以通过手动来解决,选择最终的内容:

        根据需求,我选择 "Hello Git" 的内容。

        最终,再将最终修改的文件添加并提交到本地仓库中:

        7)开发中分支使用原则与流程

        几乎所有的版本控制系统都以某种方式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的 Bug 修改、开发新的功能,以免影响开发主线。

        在开发中,一般有如下分支使用原则与流程:

        - master 生产分支

        线上分支,主分支,中小规模项目作为线上运行的应用对应的分支。

        - develop 开发分支

        是从 master 创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同使其上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到 master 分支,准备上线。

        - feature 分支

        从 develop 创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到 develop 分支。

        - hotfix 分支

        从 master 派生的分支,一般作为线上 bug 修复使用,修复完成后需要合并到 master、test、develop 分支。

        还有一些其他分支,这里就不再过多详述。

        4.0 Git 远程仓库

        前面已经知道了 git 中存在两种类型的仓库,即本地仓库和远程仓库,那么我们如何搭建 git 远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有 GitHub、Gitee(码云)、GitLab 等

        码云(地址:码云官方 (gitee.com))是国内的一个代码托管平台,由于服务器在国内,所以相比于 GitHub,码云速度会更快。

        GitLab 是一个用于仓库管理系统的开源项目,使用 git 作为代码管理工具,并在此基础上搭建起来的 web 服务,一般用于企业、学校内部网络搭建 git 私服。

        4.1 创建远程仓库

        先在码云上注册完成,接着就可以搭建远程仓库了:

        接着往下走:

        点击创建完之后:

        4.2 配置 SSH 公钥

        一般对于个人来说,不太需要配置这个,我们往该远程仓库推送数据的时候,通过用户名和密码进行验证就行了。对于公司来说,需要配置 SSH 公钥。

        1)生成 SSH 公钥

        在本地仓库输入如下指令:

ssh-keygen -t rsa

        接着不断按回车如果公钥已经存在,则自动覆盖。

        获取公钥命令:

cat -/.ssh/id_rsa.pub

        获取到 SSH 公钥之后,在码云上设置账户 SSH 公钥:

        最后在本地仓库上来验证是否配置成功:

ssh -T git@gitee.com

        4.3 操作远程仓库

        1)本地仓库与已创建的远程仓库进行对接。

        命令:

git remote add <远端仓库的名称> <仓库路径>

        远程仓库名称默认是 origin,取决于远端服务器设置。

        仓库路径,从远端服务器获取此 URL 。

举个例子:

        本地仓库与远程仓库就建立了连接。

        2)查看远程仓库

        命令:

git remote

举个例子:

        3)将本地仓库推送远程仓库

        命令:

git push [-f] [--set-upstream] 远端名称 本地分支名:远端分支名

        如果远端分支名和本地分支名称相同,则可以只写本地分支:

git push origin master

        --set-upstream:推送到远端的同时并且建立和远端分支的关联关系

git push --set-upstream origin master

        如果当前分支已经和远端分支关联,则可以省略分支名和远端名:

git push

        以上的方法,选择一种适合自己的即可。

举个例子:

        将本地仓库的资料推送到远程仓库:

        此时查看远程仓库:

        这就成功将本地仓库推送到远程仓库了。

        4)查看本地分支与远程分支关联关系

        命令:

git branch -avv

举个例子:

        可以看到本地 master 与远程仓库的 master 是在同一个版本上。

        5)从远程仓库克隆到本地仓库

        如果已经有了一个远端仓库,我们可以直接 clone 到本地。

        命令:

git clone <远程仓库路径> [本地目录]

        本地目录可以省略,会自动生成一个目录。

举个例子:

        打开文件,这就是从我们之前提交到远程仓库的文件,现在又从远程仓库克隆到另一个本地仓库中。

        6)从远程仓库中抓取和拉取

        远程分支和本地分支一样,也可以进行 merge 操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。

        - 抓取命令:

git fetch [remote name] [branch name]

        抓取指令就是将仓库里的更新都抓到本地,不会进行合并。

        如果不指定远端名称和分支名,则抓取所有分支。

        - 拉取命令:

git pull [remote name] [branch name]

        拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于 fetch + merge 。

        如果不指定远端名称和分支名,则抓取所有并更新当前分支。

举个例子:

        现在有两个本地仓库,都是关联同一个远程仓库,版本相同。

        当前有一个仓库创建了一个 text04.txt 文件,并且提交本地,再推送到远程仓库:

        则另一个仓库就可以通过拉取获取 text04.txt 新增的文件:

        6)解决合并冲突

        在一段时间,A、B 用户修改了同一个文件,且修改了同一行位置的代码,此时发生合并冲突。

        A 用户在本地修改代码后优先推送到远程仓库,此时 B 用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库,此时 B 用户晚于 A 用户,则会推送失败。故需要先拉取远程仓库的提交,经过合并后才能推送到远端分支。

        5.0 使用 IEAD 中使用 Git

        可以有效地管理代码版本和团队协作。

        5.1 在 IDEA 中配置 Git

        安装好 IDEA 后,如果 Git 安装在默认路径下,那么 IDEA 会自动找到 git 位置,如果更改了 git 的安装位置则需要手动配置 git 的路径。对于比较新的 IDEA 版本,即使更改了 git 安装路径,IDEA 也能找到 git 的位置。

        选择 File -> Setings 打开设置窗口,找到 Version Control 下的 git 选项:

        5.2 在 IDEA 中操作 Git

        1)初始化本地仓库

        假设将当前项目交给 git 进行管理,先将当前项目初始化:

        点击 VCS

        选择需要管理的项目:

        初始化完毕之后,会出现 git 的工具:

        2)提交到本地仓库

        将项目提交到本地仓库中:

        选择需要进行管理的项目文件,再点击提交。

        3)推送到远程仓库

        将本地仓库推送到远程仓库:

        再选择远程仓库:

        远程仓库根据 URL 来确定,name 一般默认是 origin 。

        这就成功提交到远程仓库中了。

        查看远程仓库:

        5)克隆远程仓库到本地

        如果需要从远程仓库克隆文件到本地,点击 clone:

        选择需要克隆的远程仓库:

        也可以自动设置本地仓库的位置。

        6)分支

        通过 git 的控制台,可以对分支进行操作:

        查看分支:

        当前分支有本地分支 master 和远程分支 master 。

        创建本地分支:

        切换分支:

        通过点击不同的分支,来进行切换。

         合并分支:

        删除分支:

 

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

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

相关文章

活动预告|博睿数据将受邀出席GOPS全球运维大会上海站!

第二十四届 GOPS 全球运维大会暨研运数智化技术峰会上海站将于2024年10月18日-19日在上海中庚聚龙酒店召开。大会将为期2天&#xff0c;侧重大模型、DevOps、SRE、AIOps、BizDevOps、云原生及安全等热门技术领域。特设了如大模型 运维/研发测试、银行/证券数字化转型、平台工程…

Qt-系统处理窗口移动和大小改变相关事件(60)

目录 描述 使用 补充&#xff1a;事件分发 / 事件过滤 描述 移动和改变窗口大小事件 使用 重写事件 移动窗口位置 改变窗口大小 补充&#xff1a;事件分发 / 事件过滤 这个属于事件背后的逻辑&#xff0c;可以让程序员有更多的操作&#xff0c;不过要小心使用&#xff0c…

凸函数 (Convex Function)

文章目录 1.凸函数定义2. 凸函数和非凸函数的图示3.闭凸函数 1.凸函数定义 凸函数是指在其图像上的任意两个点之间画一条线&#xff0c;这条线始终不会低于函数图像。其数学定义为对于任何两个点 x x x 和 y y y&#xff0c;以及 λ ∈ [ 0 , 1 ] \lambda \in [0,1] λ∈[0,…

51单片机的智能温控风扇【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块温度传感器步进电机按键、蜂鸣器、LED等模块构成。适用于智能风扇调速等相似项目。 可实现功能: 1、LCD1602实时显示温度、自动/手动和风扇风力等级 2、温度传感器DS18B20采集温度信息 3、手动模式&#xff1a;可…

【软件测试】基本知识3

一、能够说出软件缺陷判定标准 说明&#xff1a;执行结果与用例的期望结果不一致&#xff08;含义&#xff09;&#xff0c;为缺陷。 缺陷的定义&#xff1a;软件在使用过程中存在的任何问题都叫软件的缺陷&#xff0c;简称bug 缺陷判定标准 软件未实现需求&#xff08;规格&…

[单master节点k8s部署]37.微服务(一)springCloud 微服务

微服务架构的一个重要特点是&#xff0c;它与开发中使用的具体编程语言或技术栈无关。每个微服务都可以使用最适合其功能需求的语言或技术来实现。例如&#xff0c;一个微服务可以用Java编写&#xff0c;另一个微服务可以用Python、Go、Node.js等编写。微服务架构允许这种灵活性…

OpenCV高级图形用户界面(5)获取指定滑动条(trackbar)的当前位置函数getTrackbarPos()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 返回滑动条的位置。 该函数返回指定滑动条的当前位置。 cv::getTrackbarPos() 函数用于获取指定滑动条&#xff08;trackbar&#xff09;的当前…

【C++差分数组】P1672何时运输的饲料

本文涉及知识点 C差分数组 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 P1672何时运输的饲料 原文比较啰嗦&#xff0c;我简述一下&#xff1a; 第x天运来F1(1<F1<1e6)千克的饲料&#xff0c;第D&#xff08;1<2e3)天还剩F2&…

数据结构-5.7.二叉树的层次遍历

一.演示&#xff1a; 1.初始化队列&#xff1a; 2.根结点入队&#xff1a; 3.判断队列是否为空&#xff0c;此时有根结点&#xff0c;说明不为空&#xff0c;则队头结点即根结点出队并访问&#xff0c;再先进它的左结点&#xff0c;最后进它的右结点&#xff1a; 4.之后对进来…

4.stm32 GPIO输入

按键简介 按键&#xff1a;常见的输入设备&#xff0c;按下导通&#xff0c;松手断开 按键抖动&#xff1a;由于按键内部使用的是机械式弹簧片来进行通断的&#xff0c;所以在按下和松手的瞬间会伴随有一连串的抖动 传感器模块简介 传感器模块&#xff1a;传感器元件&#…

如何使用ssm实现超市管理系统

TOC 10917ssm超市管理系统 系统概述 进过系统的分析后&#xff0c;就开始记性系统的设计&#xff0c;系统设计包含总体设计和详细设计。总体设计只是一个大体的设计&#xff0c;经过了总体设计&#xff0c;我们能够划分出系统的一些东西&#xff0c;例如文件、文档、数据等。…

专线监控的使用方法:运维团队的全面实战指南

在当今高度信息化的时代&#xff0c;专线网络已成为企业连接不同地域、保障业务连续性的重要基础设施。然而&#xff0c;随着网络架构的复杂化和业务需求的多样化&#xff0c;运维团队面临着前所未有的挑战。为了有效应对这些挑战&#xff0c;运维团队需要深入了解并熟练掌握专…

利用GPU的OpenCL和MLC-LLM框架运行小语言模型-地瓜RDK X5开发板-非量产算法仅供整活

RDK™ X5机器人开发套件&#xff0c;D-Robotics RDK X5搭载Sunrise 5智能计算芯片&#xff0c;可提供高达10 Tops的算力&#xff0c;是一款面向智能计算与机器人应用的全能开发套件&#xff0c;接口丰富&#xff0c;极致易用。 本文利用其32GFLOPS的一颗小GPU&#xff0c;支持…

60 mysql 存储引擎之静态格式 MyISAM

前言 我们这里来看一下 MyISAM 存储引擎, 我们常见的那些 user, db, table_priv, proc 等等是基于 MyISAM 这是我们经常会提及的 两种持久化的存储引擎之一, 一是 MyISAM存储引擎, 另外一个是 InnoDB存储引擎 我们这里来看一下 MyISAM 中固定长度的数据表的相关处理 mysql…

振动分析-35-滚动轴承全生命周期模式下的时域特征对比(实战)

文章目录 1 数据集概述1.1 轴承参数1.2 运行工况1.3 数据详情2 加载显示全量数据2.1 数据提取2.2 全寿命数据可视化3 每次测量的时域特征3.1 计算时域特征的函数3.2 水平和垂直对比35Hz12kN3.3 水平和垂直对比37.5Hz11kN3.4 水平和垂直对比40Hz10kN3.5 结果分析4 参考附录1 数据…

单链表速通后续!

目录 1>>闲话 2>>头删 3>>查找 4>>在指定位置之前插入 5>>删除指定结点 6>>指定位置之后插入 7>>删除指定位置之后的结点 特别思考&#xff1a; 8>>销毁单链表 Slist.h Slist.c test.c 9>>总结 1>>闲话…

C++一个很好的计时方法

C一个很好的计时方法 //记时LARGE_INTEGER t1;LARGE_INTEGER t2;LARGE_INTEGER f;QueryPerformanceFrequency(&f);QueryPerformanceCounter(&t1);Sleep(100);QueryPerformanceCounter(&t2);double time;time (double)(t2.QuadPart-t1.QuadPart)/(double)f.QuadPar…

机器学习篇-day06-集成学习-随机森林 Adaboost GBDT XGBoost

一. 集成学习思想 集成学习 原理 集成学习是机器学习中的一种思想&#xff0c;它通过多个模型的组合形成一个精度更高的模型&#xff0c;参与组合的模型称为弱学习器&#xff08;基学习器&#xff09;。训练时&#xff0c;使用训练集依次训练出这些弱学习器&#xff0c;对未知…

Chromium 如何查找前端 window.navigator, window.screen等对象在c++中的实现

以前端Navigator 对象为例&#xff1a; 1、直接在vscode里面搜索"Navigator" 过滤条件*.idl&#xff0c;这样可以搜到Navigator.idl对象文件。 2、打开Navigator.idl 可以看到平级目录对应的Navigator.h 和Navigator.cc定义 3、Navigator.idl会在out\Debug\gen\thir…

【系统集成中级】线上直播平台开发项目质量管理案例分析

【系统集成中级】线上直播平台开发项目质量管理案例分析 一、案例二、小林在项目质量管理中存在的问题&#xff08;一&#xff09;计划阶段缺失&#xff08;二&#xff09;测试用例编制与执行问题&#xff08;三&#xff09;质量管理流程问题&#xff08;四&#xff09;质量保证…