Git小本

news2024/9/28 1:22:15

一、Git 概述


Git 是 Linus Torvalds 为了帮助管理 Linux内核开发的一个开源的版本控制软件。

Linux之父(Linus Torvalds)的代表作:Linux、Git。

在这里插入图片描述


1. 为什么要用Git?


在这里插入图片描述

Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(如 Java类、xml文件、html页面等),在软件开发过程中被广泛使用。(使用Git管理我们项目的版本,方便日后维护、团队协作等等)

通过Git仓库来存储和管理我们开发中的源码文件,Git仓库分为两种:

  • 本地仓库:开发人员自己电脑上的Git仓库。
  • 远程仓库:远程服务器上的Git仓库。

Git本地的三个工作区域

Git本地有三个工作区域:工作区(Workspace)、暂存区(Stage/Index)、版本库(Repository或Git Directory)。

如果再加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:

在这里插入图片描述

  • Workspace:工作区,就是你平时存放项目代码的地方。

  • Index/Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息,一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

  • Repository:仓库区(或者叫本地版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本;

  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换;


2. 版本控制工具


软件开发的过程,会不断升级版本,通过文件备份的方式管理代码版本,会成为一场灾难。因此需要版本控制工具来管理代码的版本。

在这里插入图片描述


版本工具的选择:

  • Git(分布式版本控制工具),Git官网地址:https://git-scm.com/

  • SVN(集中式本版控制工具),SVN官网地址:https://tortoisesvn.net/

  • VSS

在这里插入图片描述

区别:使用SVN在断网的时候,本地环境不能切换版本,而Git能。


3. 使用Git能做什么


  • 代码回溯:Git在管理文件过程中会记录日志,方便回退到历史版本。
  • 版本切换:Git存在分支的概念,一个项目可以有多个分支(版本),可以任意切换。
  • 多人协作:Git支持多人协作,即一个团队共同开发一个项目,每个团队成员负责一部分代码,通过Git就可以管理和协调。
  • 远程备份:Git通过仓库管理文件,在Git中存在远程仓库,如果本地文件丢失还可以从远程仓库获取

4. Git代码托管平台


我们可以借助互联网上提供的一些代码托管平台来搭建Git远程仓库,其中比较常用的有GitHub、码云、GitLab等。

1、GitHub:https://github.com (国外的,访问有点慢)

在这里插入图片描述


2、coding :https://coding.net(国内腾讯云旗下的)

在这里插入图片描述


3、gitee(码云):https://gitee.com(国内的,常用)

在这里插入图片描述


4、GitLab:https://gitlab.cn/(公司可能会有,搭建一个类似于GitHub的仓库)

在这里插入图片描述

总结:

名称网址说明
gitHubhttps://github.com/一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub
码云https://gitee.com/国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快
GitLabhttps://about.gitlab.com/一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务
BitBuckethttps://bitbucket.org/一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户

5. Git的下载与安装


1、 Git官网下载

Git官网下载地址:https://git-scm.com/

在这里插入图片描述


2、第三方下载Git

淘宝镜像源下载:https://registry.npmmirror.com/binary.html?path=git-for-windows/

Git-2.20.1-64位下载地址:https://registry.npmmirror.com/-/binary/git-for-windows/v2.20.1.windows.1/Git-2.20.1-64-bit.exe

在这里插入图片描述

在这里插入图片描述

按步骤点击后,本地会下载Git-2.20.1-64-bit.exe可执行文件:(安装的时候双击exe文件即可)

在这里插入图片描述


3、安装Git

Git的安装教程:https://blog.csdn.net/qq_46921028/article/details/114898728 (默认下一步即可)

安装成功之后,在开始菜单上有3个程序:

在这里插入图片描述

Git Basth : Linux风格的命令行;

Git CMD : Windows风格的命令行;

Git GUI: 图形化界面的Git;



二、Git常用命令


1.Git 全局设置


第一次安装Git,需要配置用户名称和邮箱地址,这是非常重要的,因为每次Git提交都会用到这些用户信息:

git config --global user.name "dazhangwei"          #配置名称
git config --global user.email"dazhangwei@163.com"  #配置邮箱

查看配置信息: git config --list

git config --list

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BAJhgUOP-1672389272291)(Git.assets/image-20221230094932031.png)]


2. 获取Git仓库


使用Git对我们的代码进行管理,首先需要获得Git仓库,获取Git仓库通常有以下两种方式:

  • 在本地初始化Git仓库(不常用)
  • 从远程仓库克隆(常用)

2.1 在本地初始化Git仓库


操作步骤如下:

1、在任意目录下创建一个空目录(例如repo1)作为我们的本地Git仓库。

2、进入这个目录中,点击右键打开Git bash窗口。(Git命令行)

3、执行命令:git init (初始化本地仓库)

如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库已经创建成功啦。

在这里插入图片描述


2.2 从远程仓库克隆


Git将远程仓库克隆到本地命令如下:(注意:在本地没有版本库的情况下执行)(版本库就是.git目录

git clone 远程仓库url地址

示例:将码云上的若依项目(仓库)克隆到本地

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9SSX8gsw-1672389272292)(Git.assets/image-20221230101154503.png)]

git clone git@gitee.com:y_project/RuoYi.git

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LdEaS8or-1672389272293)(Git.assets/image-20221230101948503.png)]


2.3 Git本地的三个工作区域


Git本地的三个工作区域:工作区、暂存区、版本库。

  • 版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。

  • 工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码。

  • 暂存区.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方。

在这里插入图片描述


2.4 Git工作区中文件的状态


Git工作区中的文件存在两种状态:

  • untracked 未跟踪(未被纳入版本控制)

  • tracked 已跟踪(被纳入版本控制)

    • Unmodified 未修改状态。
    • Modified 已修改状态。
    • Staged 已暂存状态。

注意:文件的状态会随着我们执行Git的命令发生变化。


示例1:在工作区中新建a.txt文件,然后使用命令git status查看文件状态。

在这里插入图片描述


示例2:将a.txt加到暂存区中,然后查看文件状态。

在这里插入图片描述


示例3:修改a.txt文件内容,然后查看文件状态。

在这里插入图片描述


示例4:将暂存中的a.txt文件提交。

git commit -m "a.txt" a.txt

在这里插入图片描述


示例5:查看日志

git log

在这里插入图片描述


3. 本地仓库操作


本地版本库操作操作命令如下:

  • git status:查看文件状态
  • git add 目录:将工作区内的指定文件添加到暂存区。
  • git add 文件:将工作区内的指定目录(包括子目录)添加到暂存区中。
  • git add . :将工作区内的所有文件或目录添加到暂存区中。
  • git reset 目录或文件 :将暂存区的指定目录或文件取消暂存。
  • git reset --hard 版本号:切换到指定版本。(每次commit都会产生新的版本号,通过版本号就可以回到历史版本)
  • git commit -m "日志" 目录或文件:将暂存区的目录或文件提交到本地版本库,并设置日志。
  • git commit -m "日志" :将暂存区的所有目录文件提交到本地版本库,并设置日志。
  • git log:查看本地版本库的所有日志。
  • git log 目录或文件:查看本地版本库指定目录或者文件的日志。

示例:查看本地版本库的所有日志、查看本地版本库a.txt文件的日志

在这里插入图片描述


版本追溯

版本追溯的作用:

  • 最新版本出现了一个很严重的BUG,需要回到上一个版本重新开发。
  • 找回丢失的文件
  • 浏览过去的代码

1、线上可以通过浏览提交的信息查看对应的版本:(或者本地仓库通过git log 查看提交记录,进行回滚操作)

在这里插入图片描述

2、本地通过回溯命令切到指定版本:git reset --hard 版本号

在这里插入图片描述

lenovo@LAPTOP-HGGI9K40 MINGW64 /e/Test/stz (master)
$ ll
total 10
-rw-r--r-- 1 lenovo 197609  42 May 25 22:52 123.txt
-rw-r--r-- 1 lenovo 197609   5 May 25 22:50 233.txt
-rw-r--r-- 1 lenovo 197609 852 May 25 22:18 README.en.md
-rw-r--r-- 1 lenovo 197609 942 May 25 22:18 README.md

lenovo@LAPTOP-HGGI9K40 MINGW64 /e/Test/stz (master)
$ git reset --hard dd3b325
HEAD is now at dd3b325 上传123.txt

lenovo@LAPTOP-HGGI9K40 MINGW64 /e/Test/stz (master)
$ ll
total 9
-rw-r--r-- 1 lenovo 197609  14 May 25 23:20 123.txt
-rw-r--r-- 1 lenovo 197609 852 May 25 22:18 README.en.md
-rw-r--r-- 1 lenovo 197609 942 May 25 22:18 README.md

在这里插入图片描述

总结:

  • 如果将文件提交 (commit ),此文件不管以后是否删除,都可以通过版本追溯找回,所以不会担心文件丢失。(因为它把我们所有操作都存在一个.git文件夹中)
  • 如果是团队开发,commit中的备注要写清楚,方便版本追溯。
  • 开发项目的过程中,每天至少提交一次。

4. 远程仓库操作


远程版本库操作命令如下:

  • git remote:查看关联的远程版本库。(remote锐某特:远程,遥远的意思)
  • git remote -v :查看关联的远程版本库详细信息。
  • git remote add [远程版本库简称] [远程版本库地址] : 关联远程版本库。
  • git push [远程版本库简称] [分支名称] :将本地的分支推送到指定远程版本库。
  • git pull [远程版本库简称] [分支名称]:将远程版本库中指定分支拉取到本地版本库。(若是未关联的版本库,执行git pull命令后面需要添加参数 --allow-unrelated-histories
  • git clone [远程仓库地址]:将远程仓库的文件拷贝到本地。

示例1:查看本地已关联的远程版本库,命令: git remote

git remote

在这里插入图片描述


示例2:在本地仓库上与远程仓库进行关联。(映射关系)命令:git remote add 远程仓库简称 远程仓库地址

git remote add  origin git@gitee.com:aopmin/java-blog.git

在这里插入图片描述

本地仓库配置的远程仓库都需要一个简称(如:origin,起源的意思),后续在和远程仓库交互时会使用到这个简称

注意:一个本地仓库可以关联多个远程仓库。


示例3:将本地仓库内容推送到远程仓库的master分支上,命令格式:git push 远程仓库简称 分支名称

git push origin master

在这里插入图片描述


示例4:从远程仓库上拉取文件。命令:git pull 远程仓库简称 分支名称

git pull origin  分支名称

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ):

在这里插入图片描述

解决方案:在git pull命令后面添加参数 --allow-unrelated-histories。(强制拉取)

git pull origin  分支名称  --allow-unrelated-histories  

在这里插入图片描述

在这里插入图片描述

以后操作的时候:先pull,再push。


5. 分支管理


分支是Git 使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

本地仓库和远程仓库中都有分支,同一个仓库可以有多个分支,各个分支相互独立,互不干扰。

在这里插入图片描述

在这里插入图片描述

通过 git init 命令创建本地仓库时默认会创建一个 master 分支。

分支的相关命令,具体命令如下:

  • git branch : 查看本地分支。
  • git branch -r :查看远端分支。
  • git branch -a :查看所有分支。(本地和远端)
  • git branch [分支名称] : 创建分支。
  • git checkout [分支名称] : 切换分支。
  • git push [远程仓库简称] [远程仓库分支名称] : 将本地分支推送至远程仓库分支。(如果远程没有这个分支,它会自动创建)
  • git merge [分支名称 ] :合并指定分支到当前分支上。
  • git branch -d [分支名名称]:删除本地分支。(要强制删除把-d换成大写的-D
  • git push [远程仓库简称] --delete [远程分支名称]:删除远程仓库分支。

示例1:创建分支,分支名为dev,命令: git branch 分支名

git branch dev

在这里插入图片描述


示例2:切换分支,命令:git checkout 分支名

git checkout dev

在这里插入图片描述


示例3:在dev分支上进行一些操作,然后推送到远程仓库分支上。(如果远程没有dev分支,它在会自动在远程仓库创建)

在这里插入图片描述

在这里插入图片描述

lenovo@LAPTOP-NN0OFV71 MINGW64 ~/Desktop/test/repo1 (dev)
$ touch hello.txt  # 创建一个空文件

lenovo@LAPTOP-NN0OFV71 MINGW64 ~/Desktop/test/repo1 (dev)
$ git status
On branch dev
Untracked files:
  (use "git add <file>..." to include in what will be committed)

        hello.txt

nothing added to commit but untracked files present (use "git add" to track)

lenovo@LAPTOP-NN0OFV71 MINGW64 ~/Desktop/test/repo1 (dev)
$ git add hello.txt

lenovo@LAPTOP-NN0OFV71 MINGW64 ~/Desktop/test/repo1 (dev)
$ git status
On branch dev
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   hello.txt


lenovo@LAPTOP-NN0OFV71 MINGW64 ~/Desktop/test/repo1 (dev)
$ git commit -m "新增hello.txt"
[dev fc2df1f] 新增hello.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 hello.txt

lenovo@LAPTOP-NN0OFV71 MINGW64 ~/Desktop/test/repo1 (dev)
$ git status
On branch dev
nothing to commit, working tree clean

lenovo@LAPTOP-NN0OFV71 MINGW64 ~/Desktop/test/repo1 (dev)
$ git push origin dev #推送到远程分支
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 16 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 309 bytes | 309.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
remote: Create a pull request for 'dev' on Gitee by visiting:
remote:     https://gitee.com/xxxxx/java-blog/pull/new/aopmin:dev...aopmin:master
To gitee.com:aopmin/java-blog.git
 * [new branch]      dev -> dev

lenovo@LAPTOP-NN0OFV71 MINGW64 ~/Desktop/test/repo1 (dev)
$

注意:

  • 如果本地分支与远程分支同名使用命令:git push orign 分支名即可。
  • 如果本地分支与远程分支名不一致使用命令:git push orign 本地分支:远程分支
  • 例如把本地分支dev推送远程分支develop:git push orign dev:develop。

示例4:切换master分支,将dev上的内容合并到master分支。(merge末哥:合并的意思)

git checkout master
git merge dev

在这里插入图片描述

注意:分支合并时需注意合并的方向,如上图所示,在Master分支执行操作,结果就是将dev分支合并到Master分支。


解决合并冲突问题:(多个分支上相同文件内容不一致,取舍问题,几个人商量谁的好就用谁的)

  • 合并的时候若有冲突了,需要编辑文件修改冲突,然后再重新提交。

  • 提交的时候会有错,建议在提交commit命令后面加上 -i 即可。

1、在master分支上修改之前创建的hello.txt。(别忘commit)

2、在dev分支上修改之前创建的hello.txt。(别忘commit)

3、在master分支去合并dev分支。vi

在这里插入图片描述

在这里插入图片描述

编辑冲突文件:

在这里插入图片描述

在master分支上再次提交hello.txt即可:

git add hello.txt
git commit -m "合并dev内容" hello.txt -i  #解决提交错误问题

注意:虽然rebase 变基虽然好用,用不好也会导致致命问题。


示例:删除远程仓库上的dev分支。 `

 git push origin --delete dev

在这里插入图片描述


6. 标签管理


Git 中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。

比较有代表性的是人们会使用这个功能来标记发布结点(v1.0 、v1.·等)。以下面是MP的标签:

在这里插入图片描述

以下是标签处理相关的命令:

git tag							# 查看标签
git tag	标签名					  # 创建标签
git push 远程版本库简称 标签名	  # 将标签推送到远程仓库
git checkout -b 新分支名称 标签名	# 检出标签(修复bug用的,例如windows打补丁,检出某个出问题的标签到一个新分支上,然后去修复bug)

这东东一般由运维管理。


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

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

相关文章

CRC(Cyclic Redundancy Check) 循环冗余校核

最近准备开始更新一个算法系列&#xff0c;这个系列嘛就是别管有没有用先学为敬系列&#xff08;或者现学现卖系列&#xff09;。那么这个系列的第一篇就用我这两天看的CRC算法当作开篇吧。 1&#xff09;什么是CRC呢&#xff1f; 如百度所诉&#xff0c;好像是一个十分有用的…

pandas学习笔记(1)

学习网址&#xff1a;kaggle 注&#xff1a;本文仅为个人总结&#xff0c;不作为任何学习资料 一、在pandas里有两种Core objects&#xff1a;DataFrame和Series DataFrame的使用方法&#xff1a; DataFrame有两个方向&#xff0c;纵向为index,横向为column 定义一个DataFrame的…

vue3 antd项目实战——Form表单提交和校验【v-model双向绑定input输入框、form表单数据】

vue3 ant design vue项目实战——Form表单【v-model双向绑定数据实现form表单数据的提交】上期文章回顾【UI界面渲染】场景复现&#xff08;源代码附在文章最后&#xff09;实现需求1.表单数据及其类型的定义2.表单及各部分数据的双向绑定3.表单提交功能4.校验输入内容不为空5.…

计算机组成原理实训报告(附电路图)

实训一&#xff1a;运算器组成实验 目的要求&#xff1a; 掌握FA全加器的工作原理掌握行波进位的补码加法/减法器的工作原理了解ALU运算器的工作原理 掌握FA全加器的工作原理&#xff1a; 实验步骤&#xff1a;创建一个叫做FA的电路&#xff0c;然后开始绘制。 放一个或门&a…

记一次内网渗透过程学习|天磊卫士

一、靶场说明 此靶场共有3台主机 Win7为双网卡&#xff0c;桥接为模拟外网ip&#xff08;192.168.1.220&#xff09;&#xff0c;nat&#xff08;192.168.52.142&#xff09;模拟内网域环境&#xff0c;处于DMZ区域的web服务器 Win2013为内网域控成员&#xff08;nat&#xff…

[综][PDPTW]A survey on pickup and delivery problems

相关数据集的下载:https://www.sintef.no/projectweb/top/pdptw/100-customers/ 由于Li&Lim生成测试实例的方式&#xff0c;这些实例中的任务数量不同&#xff0c;略高于标称值。 在这里&#xff0c;您可以找到Li&Lim的PDPTW基准问题的100个任务实例的实例定义和最著名…

哗啦啦疑似暴雷之后,平台老板们开始迫切寻求二清合规监管办法

&#xff08;图源百度后台&#xff0c;侵删&#xff09; 最近一则“哗啦啦资金链断裂 导致餐饮店无法提现”的帖子在餐饮人中疯传&#xff0c;引起了业内不小的轰动。据很多餐饮商户反馈&#xff0c;近一个多月以来&#xff0c;哗啦啦系统一直延期提现&#xff0c;网上舆论迅速…

微服务门神-Gateway路由

引言 书接上篇微服务门神-网关了解&#xff0c;讲完了解Gateway基本概念之后&#xff0c;本篇来看下Gateway路由实现 项目集成 还是延续之前例子&#xff1a;订单服务与商品服务 步骤1&#xff1a;创建一个 shop-gateway 的模块,导入相关依赖 <?xml version"1.0…

2022年年度总结

目录 一&#xff0c;回望我的2022 二&#xff0c;2023目标 一&#xff0c;回望我的2022 刚刚度过我迷茫的大一生活&#xff0c;我的大二生活也已经过去了一半。说实话&#xff0c;家里就我一个大学生&#xff0c;我实在是不知道怎么去面对我的大学生活&#xff0c;或者说我…

高性能web网关Openresty实践

高性能web网关之openresty一、openresty 简介二、openresty 安装三、openresty开发实践 —— content_by_lua 阶段四、openresty开发实践 —— rewrite_by_lua 阶段五、openresty开发实践 —— body_filter_by_lua 阶段六、openresty开发实践 —— 黑名单6.1、基础版6.2、进阶版…

【面试题】面试官:为什么Promise中的错误不能被try/catch?

大厂面试题分享 面试题库 前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 前言 之前我写过一篇文章&#xff0c;讨论了为什么async await中的错误可以被try catch&#xff0c;而setTimeout等api不能&#xff0c…

【pandas】教程:7-调整表格数据的布局

Pandas 调整表格的布局 本节使用的数据为 data/titanic.csv&#xff0c;链接为 pandas案例和教程所使用的数据-机器学习文档类资源-CSDN文库 导入数据 import pandas as pd titanic pd.read_csv("data/titanic.csv") titanic.head()PassengerId Survived Pclas…

传感器工作原理以及传感器种类详解

随着物联网时代的到来&#xff0c;现代信息技术快速发展&#xff0c;其中包含了计算机技术、通信技术和传感器技术等&#xff0c;计算机相当于人类的大脑&#xff0c;通信技术类似人体的神经&#xff0c;而传感器就等同于人的感觉器官。从广义上说&#xff0c;传感器就是一种能…

存储控制器

存储控制器是按照一定的时序规则对存储器的访问进行必要控制的设备&#xff0c;包括地址信号、数据信号以及各种命令信号的控制&#xff0c;使主设备(访问存储器的设备)能够根据自己的要求使用存储器上的存储资源。 存储控制器的作用主要就是进行接口的转换&#xff0c;将主设…

通信原理 | 一些常用的概念记录

这篇文章只是记录平时了解到的一些概念,并没有针对性,比较杂乱,纯粹就是当做笔记本用的,各位看官请在茶余饭后的休闲时间阅读最为合适了解到新的概念的话,会随时更新世界四大导航系统 世界上有四大卫星导航系统,它们分别是美国的GPS、俄罗斯的格洛纳斯卫星导航系统、欧盟…

尚医通-SpringBoot整合MongoDB(十七)

目录&#xff1a; &#xff08;1&#xff09;MongDB-SpringBoot整合-MongoTemplate操作 &#xff08;2&#xff09;MongoTemplate操作2 &#xff08;3&#xff09;MongoTemplate操作3 &#xff08;4&#xff09;MongoDB-SpringBoot整合-MongoRepository操作 &#xff08;1&a…

FIIL、南卡、漫步者蓝牙耳机怎么选?国产半入耳蓝牙耳机推荐

随着 TWS耳机市场的发展&#xff0c;越来越多的手机厂商&#xff0c;新晋的品牌&#xff0c;甚至是老牌的音频品牌都加入到了 TWS耳机的行列中&#xff0c;让消费者的选择范围变得更大。当前热销的南卡小音舱、漫步者Lolli3、FIIL CC2蓝牙耳机都是目前受消费者欢迎的&#xff0…

pyqt 显示图片的若干方法

date: 2022-11-30 14:23 status: public title: ‘pyqt 显示图片的若干方法’ 单张图片 使用lable 显示图片 特点是最简单&#xff0c;但功能也最少。 #!/usr/bin/env python # -*- coding: utf-8 -*- import sysfrom PyQt5.QtGui import QPixmap from PyQt5.QtWidgets impor…

JAVAGUI编程初识之AWT

文章目录前言一 GUI编程简介二 AWT简介2.1 组件(Component)和容器(Container)2.2 Frame2.2.1 演示1-创建一个窗口2.2.2 演示2-多个窗口的创建2.3 Panel2.3.1 演示-Panel使用三 布局管理3.1 布局管理器之FlowLayout3.1.1 FlowLayout简介3.1.2 演示-FlowLayout使用3.2 布局管理器…

电子签章结构以及规范讲解

前言&#xff1a; 安全电子签章是通过采用PKI公钥密码技术&#xff0c;将数字图像处理技术与电子签名技术进行结合&#xff0c;以电子形式对加盖印章图像数据的电子文档进行数字签名&#xff0c;以确保文档来源的真实性以及文档的完整性&#xff0c;防止对文档未经授权的篡改&…