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

Git系列——Git部署及应用

下面从如下几个方面介绍下其部署及应用:

Git服务器搭建

Git客户端搭建

Git常用命令

Git服务器搭建

Linux服务器搭建(Centos7.5):

一、安装配置SSH(参考XXX)

二、检查OS是否自带Git

1、git-version //查询版本

2、rpm -qa git //查询git详细信息

3、yum -y remove xxx //删除存在的git

三、新安装Git

1、cd /home //切换到home目录

2、mkdir /git //新建git目录

3、cd /home/git //切换到新建git目录下

4、yum -y install git //安装git

四、服务器端配置git

1、groupadd gitgrp //创建git用户组,gitgrp

2、useradd -m -g gitgrp gituser //创建用户gituser,隶属于用户组gitgrp

3、passwd gitpwd //设置用户密码 gitpwd

4、chmod 755 /home/git //修改/home/git目录权限

5、su gituser //切换到gituser用户

6、cd /home/git //切换到git所在目录

7、mkdir .ssh && chmod 700 .ssh //创建.ssh文件,并赋予操作权限

8、touch .ssh/authorized_keys && chmod600 .ssh/authorized_keys //创建公钥存储文件authorized_keys文件并赋予权限

五、服务器端创建git仓库

1、mkdir /home/git/repository //新建仓库目录

2、git init --bare/home/git/repository/gitrptest.git //创建仓库gitrptest.git

3、chown -R gitgrp:gituser /home/git/repository/gitrptest.git //将用户组及用户授权访问仓库gitrptest.git

六、安全处理

1、禁用gituser的ssh登录(若不禁用,加入公钥列表的用户,都能直接访问服务器,如:ssh gitsuer@ip

1)、nano /etc/passwd //打开密码文件

2)、按pagedown(PgDn)翻到下面,找到git:账户

3)、修改git用户权限

git:x:1001:1001:,,,:/home/git:/bin/bash 修改为:git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

七、客户端创建公钥

1、例如window下使用cmd、powershell、git bash里都可以执行,推荐git bash(在任意空白处右键,点击Gitbash here)

ssh-keygen -trsa //执行命令生成本地公钥

2、在用户/xxx(当前系统用户)/.ssh下有两个文件 id_rsa 和id_rsa.pub, 后面这个就是新生成的公钥

八、上传公钥到服务器并加入服务器公钥文件内(authorized_keys)

1、将刚创建的本地公钥文件id_rsa_pub文件copy到git服务器localrsa目录

scpid_rsa_put gituser@ip:/home/git/localrsa (弹出窗口按提示输入yes gituser的密码, 即可上传到服务器)

2、在服务器端追加刚上传的本地公钥文件到authorized_keys

cat /home/git/localrsa/id_rsa_pub >> /home/git/.ssh/authorized_keys

3、可以查看服务器公钥文件内容

1)、使用vi查看,具体操作自行查找

2)、head -n x /home/git/authorized_key //查看文件前x行内容, x为具体数量

九、团队权限管理

Git是为了管理Linux的源代码而开发的,延续了开源精神,所以没有提供权限管理,但提供了hook,可以直接控制git操作,做到权限管理。

下面有几种方式可以实现权限管理:

1、收集客户端公钥:共用gituser(这种方式使用简单,但不能做到实际的权限管理)

2、采用Gitosis:通过构建一个特殊的仓库来方便集中管理公钥,通过其配置文件实现权限管理

3、采用Gitolite:通过git用户和git进行通讯,用Python编写的,自己本身采用虚拟账户来进行权限管理,做到向SVN一样的权限控制

Windows服务器搭建(windows server 2012):

在windows平台下可以使用如下两种方式搭建Git服务器,Bonobo Git Server 和 Gitblit, 可根据自行条件选择。

两种方式本质上一样都是开发一套web应用集中管理用户及文件,底层仍旧是通过git来实现,都比较简单,自行查找搭建方式。

1、Bonobo Git Server (https://bonobogitserver.com)采用ASP.NET研发的

2、Gitblit (http://www.gitblit.com)采用Java研发的

Git客户端搭建

Linux(centos7.5)客户端:

在centos下有两种安装方式,都比较简单:

一、通过yun命令安装

1、yum remove git //卸载旧版本

2、yum install -y git //安装 yum 源的 Git 版本(注意:该源下一般git版本都比较旧)

3、git version //查看版本

4、配置环境变量

vim ~/.bashrc //文件末尾添加如下内容:

exportPATH="/usr/local/git/bin:$PATH"

source~/.bashrc //使配置生效

二、下载源代码编译安装

1、yum install -y wget //若没有wget,先安装

2、//下载目标版本,例如v2.39.2.tar.gz

wgethttps://github.com/git/git/archive/refs/tags/v2.39.2.tar.gz

3、tar v2.39.2.tar.gz //解压

4、cd v2.39.2 //进入目录

5、./configure --prefix=/usr/local/git //配置安装路径, 可自行定义

6、make && make install //编译安装

7、配置环境变量

vim ~/.bashrc //文件末尾添加如下内容:

exportPATH="/usr/local/git/bin:$PATH"

source~/.bashrc //使配置生效

Git常用命令

一般推荐直接使用GUI工具使用Git,例如:TortoiseGit

A、git配置命令

1、git config -l //查看当前git环境详细配置

2、git config --system --list //查看系统config

3、git config --global --list //查看当前用户配置

4、git config --local --list //查看当前仓库配置信息

5、git config [--local][--global][--system]section.key value //修改git配置

6、git config --local user.name xxx //设置当前项目的用户名

7、git config --global core.quotepathfalse //配置当前用户的编码项,可以解决中文编码问题

8、git config --local core.ignorecasefalse //配置当前项目不忽略文件大小写,git默认忽略文件名的大小写,这点值得注意

B、git操作命令

1、初始化、远程仓库

1.1 初始化

git init //进入当前目录执行,创建一个本地库

1.2 远程仓库

git remote -v //显示所有远程仓库

git remote show[remote] //显示某个远程仓库

git remote add[shortname] [url] // 添加远程仓库

git remote rmname //删除远程仓库

git remote renameold_name new_name //修改仓库名

2、克隆

git clone //克隆一个版本库,主要有3种形式:

用法1 : git clonegituser@ip:/home/git/repository/gitrptest.git 当前目录

说明:克隆一个选定版本库到当前目录,相当于copy了一个选定版本库的副本(称之为非裸版本库),里面有着一样的工作区,一样的 .git目录。差别是新克隆出来的这个版本库里的.git/config文件会记录上游版本库repository的位置。

用法2 : git clone --baregituser@ip:/home/git/repository/gitrptest.git 当前目录

说明:克隆出来的版本库不包括工作区,直接就是版本库的内容(即.git目录里的内容)。称之为裸版本库。

用法3 : git clone --mirrorgituser@ip:/home/git/repository/gitrptest.git 当前目录

说明:也是克隆出一个裸版本库。但可以通过git fetch命令与上游版本库持续同步。

3、添加、提交、回退、修改、删除、查看

3.1 添加(将工作区的文件添加到暂存区)

git add dir1 //指定目录,包括目录下的所有文件和子目录

git add fileName1,fileName2 //指定文件

git add . //所有

3.2 提交(将暂存区内容提交到本地库)

git commit -m '描述' fileName //-m 表示同时提交描述信息

git commit [file1][file2] ... -m [message] //提交指定文件

git commit -am '描述' //-a 表示修改文件后不需要执行 git add 命令,直接来提交

git revertHEAD //撤销最近的一个提交

git revert 版本号 // 撤销某次commit

3.3 回退

git reset [--soft| --mixed | --hard] [HEAD]

--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

git resetHEAD^ //回退所有内容到上一个版本

git reset HEAD^hello.php //回退 hello.php 文件的版本到上一个版本

git reset xxx指针 //回退到指定版本

git reset HEADfile //回退已缓存的文件

--soft 参数用于回退到某个版本

git reset --softHEAD~3 //回退上上上一个版本

--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:

git reset --hardHEAD~3 //回退上上上一个版本

git reset –hard bae128 //回退到某个版本回退点之前的所有信息。

git reset --hardorigin/master //将本地的状态回退到和远程的一样

注意:谨慎使用 –-hard 参数,它会删除回退点之前的所有信息。

HEAD 说明:

HEAD 表示当前版本

HEAD^ 上一个版本

HEAD^^ 上上一个版本

HEAD^^^ 上上上一个版本

以此类推...

可以使用 ~数字表示

HEAD~0 表示当前版本

HEAD~1 上一个版本

HEAD^2 上上一个版本

HEAD^3 上上上一个版本

以此类推...

3.4修改

git mv [file][newfile] //移动或重命名一个文件、目录或软连接(linux下的目录映射,俗称软连接)

git mv -f [file][newfile] //-f 参数 表示新文件名已经存在,但还是要重命名它

3.5 删除

git rm<file> //将文件从暂存区和工作区中删除

git rm -f<file> //强行从暂存区和工作区中删除修改后的文件

git rm --cached<file> //把文件从暂存区域移除,但仍然保留在当前工作目录中

git rm –r * //执行此语句,会删除当前目录下的所有文件和子目录

git clean -df //加-d是指包含目录,加-f是指强制,删除所有未跟踪的文件

3.6 查看

git status //查看工作区、暂存区状态,在你上次提交之后是否有对文件进行再次修改。

git status -s //-s 参数来获得简短的输出结果

git diff HEAD //查看已缓存的与未缓存的所有改动

git diff --statHEAD //显示摘要而非整个diff

git diff[file] //显示暂存区和工作区的差异

git diff --cached[file] //显示暂存区和上一次提交(commit)的差异

git diff[first-branch]...[second-branch] //显示两次提交之间的差异

git log //查看历史日志

git log --oneline//历史记录的简洁的版本

git log --graph--oneline //历史记录的简洁的版本,同时展现分支、合并情况

git log--pretty=oneline //漂亮一行显示

git log --reverse--oneline //逆向显示

git log --author=某个用户 --oneline -n //显示某用户的最近n次日志

git blame<file> //查看指定文件的日志

git reflog //显示操作本地版本库的命令

4、拉取

4.1 拉取

git pull <远程主机名> <远程分支名>:<本地分支名>

git pull originmaster:brantest //将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。

git pull originmaster //如果远程分支是与当前分支合并,则冒号后面的部分可以省略。

注意:git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写。

4.2 fetch

git fetch [仓库] //拉取仓库

4.3 merge

git merge [仓库]/[branch] //将远程分支合并到当前分支

5、推送(将本地的分支版本上传到远程并合并,正常情况需要保证远程目标分支必须是本地分支的祖先)

git push <远程主机名> <本地分支名>:<远程分支名>

git push <远程主机名> <本地分支名> //本地分支名与远程分支名相同,则可以省略冒号:

push文件, 新建任意文件,例如:test.txt

git add -A //添加所有文件

git commit //提交文件

git push originmaster <=> git push originmaster:master //推送本地master分支到服务器主分支,远程克隆下的仓库,默认主分支名称叫:origin

git push -f originmaster //强制提交,正常情况需要保证目标分支必须是本地分支的祖先

git push origin--delete master //删除远程主机的分支可以使用 --delete 参数,以下命令表示删除origin 主机的 master 分支:

6、分支管理

git branch //列出所有分支

git branch(branchname) //新建分支

git checkout(branchname) //切换分支

git checkout -b(branchname) //-b表示创建新分支并立即切换到该分支下

git branch -d(branchname) //删除分支

//合并分支,先切换到要合并到的分支,然后merge需要合并的分支

git checkout (要合并到的目标分支)

git merge (被合并的分支)

例如:下面表示将otherbranc分支合并到master分支

git checkoutmaster

git mergeotherbranch

7、tag管理

git tag //查看所有标签

git tag -a <tagname> //执行打标签,会弹出输入标签描述

git tag -a<tagname> <分支号> //给某个分支追加标签

例如:git tag -a v0.9 85fc7e7

git tag -a <tagname>-m "描述" //创建标签并同时添加描述信息

git tag -s<tagname> -m "描述" //用自己的私钥签署标签

git show <tagname> //查看某个标签信息

git push<origin> <tagname> //将tagname标签推送到远程仓库

git push<origin> --tags //一次性推送全部尚未推送到远程的本地标签

//删除远程标签

git tag -d<tagname> //先删除本地标签

git push<origin> :refs/tags/<tagname> //删除远程标签

8、变基

git rebase masterfeature //将feature分支的基地址变更到master上

等价于下面两个命令

git checkoutfeature

git rebase master

git rebase -imaster feature //-i 表示以交互式方式执行,可以人工干预进行或终止

git rebase--continue; //让 rebase 过程继续执行。

git rebase--abort; //发生代码冲突后,放弃合并,回到操作前的样子。

rebase主要优点:

1、将当前分支的commit记录也合并到目标分支上

2、不会产生多余的合并提交commit,合并比较干净

3、可以回退到合并上来的分支上的某天commit提交

rebase主要缺点:

1、执行变基后就不知道最初是从那个节点上拉取的分支了

2、若commit提交过多,会执行多次解决冲突

注意:rebase和merge都是合并代码,二者可理解为互反

例如:将A分支合并到B分支, 一种是rebase操作,一种是merge操作

rebase:

git rebase A B

等价于

git checkout B

git rebase A

merger:

git checkout B

git merge A

merger主要优点:

1、直接一次解决完冲突

merge主要缺点:

1、会产生一条多余的合并commit记录

2、待合并分支上的所有commit提交记录都丢弃了

3、没办法再回退到合并分支的某个commit提交

相关文章:

Git系列——Git部署及应用

下面从如下几个方面介绍下其部署及应用&#xff1a;Git服务器搭建Git客户端搭建Git常用命令Git服务器搭建Linux服务器搭建(Centos7.5):一、安装配置SSH&#xff08;参考XXX)二、检查OS是否自带Git1、git-version //查询版本2、rpm -qa git //查询git详细信息3、yum -y remove x…...

Java多线程(二)--线程相关内容

1.创建线程的几种方式继承 Thread 类&#xff1b;public class MyThread extends Thread { Override public void run() {System.out.println(Thread.currentThread().getName() " run()方法正在执行..."); }实现 Runnable 接口&#xff1b;public class MyRunnable…...

CF1692E Binary Deque 题解

CF1692E Binary Deque 题解题目链接字面描述题面翻译题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示思路代码实现题目 链接 https://www.luogu.com.cn/problem/CF1692E 字面描述 题面翻译 有多组数据。 每组数据给出 nnn 个数&#xff0c;每个数为 000 或 1…...

rust方法和关联函数

Rust方法 在大多数面向对象的语言中都存在方法&#xff0c;方法一般和类关联在一起。在Rust中也是类似的&#xff0c;方法和对象总是一起出现。Rust的方法和结构体&#xff0c;枚举&#xff0c;特征一起使用。 定义方法 Rust使用关键字impl来定义方法&#xff0c;例如&#…...

深度学习如何训练出好的模型

深度学习在近年来得到了广泛的应用&#xff0c;从图像识别、语音识别到自然语言处理等领域都有了卓越的表现。但是&#xff0c;要训练出一个高效准确的深度学习模型并不容易。不仅需要有高质量的数据、合适的模型和足够的计算资源&#xff0c;还需要根据任务和数据的特点进行合…...

智慧教室系统--重点设备监控系统

随着教育信息化的不断发展&#xff0c;智慧教室已成为现代教育的重要组成部分。而智慧教室的设备管理和维护也变得越来越重要。一旦智慧教室的重要设备出现故障或异常&#xff0c;将会对教学活动产生不利影响&#xff0c;因此建立智慧教室重点设备监控系统是必要的。一、智慧教…...

Linux中断处理

目录 一、什么是中断 二、中断处理原理 三、中断接口 3.1 中断申请 3.2 中断释放 3.3 中断处理函数原型 四、按键驱动 一、什么是中断 一种硬件上的通知机制&#xff0c;用来通知CPU发生了某种需要立即处理的事件 分为&#xff1a; 1. 内部中断 CPU执行程序的过程中&am…...

python中安装gurobi和pycharm没有语法提示问题解决

安装gurobi第一步 &#xff1a;下载gurobi ( http://www.gurobi.com ) &#xff0c;需要注册账号第二步、申请License注册如果可以通过校园网&#xff0c; 则直接生成。不能的话&#xff0c;通过网站&#xff0c;发邮件申请 http://www.gurobi.cn/NewsView1.Asp?id4第三、邮件…...

滤波算法:经典卡尔曼滤波

卡尔曼滤波实质上就是基于观测值以及估计值二者的数据对真实值进行估计的过程。预测步骤如图1所示&#xff1a; ​图1 卡尔曼滤波原理流程图 假设我们能够得到被测物体的位置和速度的测量值 ​&#xff0c;在已知上一时刻的最优估计值 ​以及它的协方差矩阵 的条件下&#xff…...

flask框架(下)

文章目录flask框架(下)werkzeug简介请求上下文flask 处理方案回到 wsgi_app 方法中push 源码总结补充flask框架(下) werkzeug简介 Werkzeug是一个WSGI工具包&#xff0c;他可以作为一个Web框架的底层库。这里稍微说一下&#xff0c; werkzeug 不是一个web服务器&#xff0c;也…...

Airbyte架构

作为一款技术复杂的数据集成管道&#xff0c;Airbyte的架构模式非常清晰明了。Airbyte应用模式Airbyte管道架构UI&#xff1a;一个易于使用的图形界面&#xff0c;用于与Airbyte API进行交互。WebApp Server&#xff1a;处理 UI 和 API 之间的连接。Config Store&#xff1a;存…...

anchor box只是先验知识,bounding box是一种过程,ground truth才是标准答案,

anchor boxes是一组提前预定义的边框&#xff0c;这些框的宽高和数据集中目标物体的宽高大体是一致的&#xff0c;换句话说&#xff0c;数据集中的绝大多数物体都能找到与其大小一致的anchor box。 举例来说&#xff0c;如果数据集中包含苹果、猫&#xff0c;那么这组anchor bo…...

带你轻松实现通讯录(C语言版)

文章目录前言通讯录初始化通讯录运行的基本框架和菜单增添联系人删除联系人查找联系人修改联系人信息展示通讯录通讯录联系人个数排序通讯录文件操作储存通讯录信息销毁通讯录整体代码Contacts.hContacts.ctest.c写在最后前言 学习C语言的小伙伴&#xff0c;相信都要经历实现通…...

渗透测试之交换式网络嗅探实验

渗透测试之交换式网络嗅探实验实验目的一、实验原理1.1 网络嗅探器Sniffer的工作原理1.2 网络嗅探器的分类1.3 网络嗅探器Sniffer的作用二、实验环境2.1 操作机器2.2 实验工具Sniffer2.3 安装工具Sniffer三、实验步骤1. 熟悉Sniffer工具的启动2. 进行监听3. 熟悉Sniffer工具的介…...

rust 安装

rust 安装一、需要一个c的环境二、配置环境变量三、开始安装一、需要一个c的环境 安装Visual Studio 二、配置环境变量 Rust需要安装两个东西&#xff0c;一个是rustup&#xff0c;一个是cargo。所以你需要设置两个环境变量来分别指定他们的安装目录。 通过RUSTUP_HOME指定…...

机器学习和深度学习综述

机器学习和深度学习综述 1. 人工智能、机器学习、深度学习的关系 近些年人工智能、机器学习和深度学习的概念十分火热&#xff0c;但很多从业者却很难说清它们之间的关系&#xff0c;外行人更是雾里看花。在研究深度学习之前&#xff0c;先从三个概念的正本清源开始。概括来说…...

SQL零基础入门学习(八)

SQL零基础入门学习&#xff08;七&#xff09; SQL 连接(JOIN) SQL join 用于把来自两个或多个表的行结合起来。 下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。 SQL JOIN SQL JOIN 子句用于把来自两个或多个表的行结合起来&#xff0c;基…...

若依系统如何集成qq邮件发送【超详细,建议收藏】

若依系统的部署博主就不在这儿阐述了&#xff0c;默认大家的电脑已经部署好了若依系统&#xff0c;这里直接开始集成邮件系统&#xff0c;首先我们得需要对qq邮箱进行配置&#xff1b;一套学不会你来打我&#x1f600;&#xff1b; 一、开启我们的qq邮箱发送邮件的配置 1、先进…...

前端-CSS-zxst

CSS 层叠样式表&#xff0c;为了定义HTML标签的样式 内联样式 在标签内部通过 style 属性设置样式值样式名:样式值;样式名:样式值; 内部样式 在 head 标签内通过 style 标签选择器设置样式&#xff0c;供这个网页上的元素使用 外部样式 在 head 标签内通过 link 标签引入外部…...

合宙Air105|fonts库|mcu.ticks()|LuatOS-SOC接口|官方demo|学习(19):fonts库

基础资料 基于Air105开发板&#xff1a;Air105 - LuatOS 文档 上手&#xff1a;开发上手 - LuatOS 文档 探讨重点 官方fonts库函数介绍以及利用mcu.ticks()计算程序运行周期相关内容的学习及探讨。 软件版本 AIR105&#xff1a;LuatOSAIR105 base 22.12 bsp V0014 32bit …...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链&#xff08;Filter Chain&#xff09;&#xff0c;核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤&#xff1a; 用户提交登录请求拦…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器

一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下&#xff0c;音视频内容犹如璀璨繁星&#xff0c;点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频&#xff0c;到在线课堂中知识渊博的专家授课&#xff0c;再到影视平台上扣人心弦的高清大片&#xff0c;音…...

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要&#xff0c;uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件&#xff0c;需要安装才能使用。 一、安装扩展插件 安装方法&#xff1a; 1.访问uniapp官方文档组件部分&#xff1a;组件使用的入门教程 | uni-app官网 点击左侧…...