Day01-01-git

news2024/10/6 20:40:22

Day01-01-git

  • Content List
  • 0. 运维发展过程
  • 1. ci-cd-co基础
    • 1.1 软件的生命周期
      • 1)软件的声明周期:软件从0-->1-->0过程
      • 2)ci/cd
      • 3)Devops
      • 4) 小结
    • 1.2 什么是环境
    • 1.3 什么是代码部署
    • 1.4 代码发布方式
  • 3. DevSecOpt之Git极速入门到放弃
    • 3.1 什么是git
    • 3.2 应用场景
    • 3.3 1分钟部署git
      • 1)Win
      • 2)Linux(CentOS/Fedora/Rocky Linux/RHEL)
      • 3)MacOS
      • 4)Ubuntu/Debian
  • 4. lidao直播app辛酸史
    • 4.1单枪匹马勇闯天涯-开发阶段
    • 4.2 git区域与状态
    • 4.3 git分支 branch
      • 1)分支?branch
      • 2)详解
      • 3)案例(了解)
      • 4)git 分支命令总结
    • 4.4 入住CBD(远程仓库)
      • 1)创建 仓库
      • 2)连接远程仓库(用户名密码方式)
      • 3)连接远程仓库(密钥认证方式)
      • 3)仓库管理命令小结
    • 4.5 补充
      • 1 tag
      • 2 gitignore
    • 4.6 总结

Content List

  • 运维发展过程
  • 软件生命周期
  • CI/CD/CO/DevOps
  • 持续部署实施流程以及对应工具?*
  • git使用(核心掌握拉取代码,拉取指定版本代码,分支)
  • gitlab私有代码仓库

0. 运维发展过程

在这里插入图片描述

  • 云原生时代:

以Devops、SRE框架为指导,Docker/K8S/微服务为基础,用分布式方式加上 Python和Go语言,构建一套云技术产品体系,以及进行高级管理工具的二次开发,实现属于公司自己的自动化运维体系以及云技术体系的自动化产品。使用的自动化运维产品,可以用ran cherargoCDtecktonCl gitops 等,流水线及管理工具

1. ci-cd-co基础

1.1 软件的生命周期

在这里插入图片描述

1)软件的声明周期:软件从0–>1–>0过程

在这里插入图片描述

  • 代码上线流程:
    • 开发书写代码
    • 把代码上传到代码仓库
    • 通过工具拉取代码到测试环境中,运行代码,测试人员测试
    • 通过工具拉取代码部署到生产环境.

2)ci/cd

  • ci cd
  • ci:持续集成:开发的代码集成到代码仓库。
  • cd:持续交付:从代码仓库拉取代码部署到测试环境。
  • cd:持续部署:从代码仓库拉取代码部署到生产环境。

在这里插入图片描述

3)Devops

  • DevOps: 理念让开发人员可以持续集成,运维人员可以持续交付和持续部署.让整个开发过程自动部署,上线…

    • 开发写完的代码自动集成,自动交付与部署。本质是自动化。
    • DevOps是一套快速、频繁、可靠的软件交付实践.
  • DevOps

    • Development 开发
    • Operation 运维
  • DevOPS目标是:解决开发书写代码,集成,交付,部署进度,审核缓慢。

  • DevOPS实现

    • 开发(存放收集代码 CI):git/gitlab/github/gitee(代码平台)
    • 运维(部署代码 CD):jenkins maven …插件 …sonarqube (运维)

DevSecOps

Dev开发

Sec安全

Ops运维

在这里插入图片描述

在这里插入图片描述

4) 小结

  • 熟悉 软件生命周期
  • 必会:ci/cd/devops 持续集成 持续交付 持续部署

1.2 什么是环境

在这里插入图片描述

  • 开发环境
  • 测试环境
  • 预发布环境/准生产环境/预生产环境
  • 生产环境
  • 谁部署,谁维护/负责

在这里插入图片描述

准生产环境/预生产环境生产环境
相同点存放代码,服务配置与生产环境一致存放代码…
区别服务器的配置可以低一些,数量少一些,甚至省钱可以用内部测试环境兼职
关于数据库连接生产环境数据库(从库),nginx镜像流量(alb镜像流量)

1.3 什么是代码部署

  • 代码发布/部署 --> 开发书写的程序代码 --> 部署测试/生产环境 web服务器(站点目录中)

在这里插入图片描述

1.4 代码发布方式

发布方式效率干扰安全性
手动发布干扰因素很多不安全
自动发布干扰因素很少安全

3. DevSecOpt之Git极速入门到放弃

  • 学习目标:
    • 使用Git命令不参考文档的情况下可以拉取代码,上传代码
    • 理解什么是分支。
    • 可以给公共代码仓库和私有代码仓库配置密钥认证访问
角色主机名ip内存
gitlab私有代码仓库oldboy-devops-gitlab10.0.0.71/172.16.1.712G(至少) 推荐2C4G
jenkinsoldboy-devops-jenkins10.0.0.72/172.16.1.721G(至少) 推荐2C4G
sonarqube代码检查oldboy-devops-sonar10.0.0.73/172.16.1.731c1G
nexus私服oldboy-devops-nexus10.0.0.74/172.16.1.741c1G

3.1 什么是git

  • scm

  • 分布式版本控制系统

    • 分布式:svn vs git
    • 版本控制
    • 软件
GitSVN
共同点存放代码,版本控制存放代码,版本控制
工作模式分布式中心化(权限集中)
使用入门较难,熟练后容易使用,目前使用率高入门比较简单,服务端linux,客户端windows
分支创建和维护分支方便创建和维护分支繁琐

3.2 应用场景

3.3 1分钟部署git

  • 其他系统安装传送门https://git-scm.com/docs

1)Win

https://git-scm.com/download/

2)Linux(CentOS/Fedora/Rocky Linux/RHEL)

#C7  
yum install -y git

#c8
dnf install -y git #或yum也可以

3)MacOS

#需要提前安装brew
brew install git

4)Ubuntu/Debian

#
apt install -y git

4. lidao直播app辛酸史

  • 单枪匹马勇闯天涯-开发阶段

4.1单枪匹马勇闯天涯-开发阶段

  • 配置git相关信息
#创建项目目录(代码目录)

#成为git仓库

#配置用户
git config
git config --global user.name 'oldboy'
git config --global user.email '918391635@qq.com'
git config --global color.ui true
git config --global --list
  • 代码目录初始化
#初始化代码目录
[root@devops-gitlab ~]# mkdir -p /app/code/live-lidao-app
[root@devops-gitlab ~]# cd /app/code/live-lidao-app
[root@devops-gitlab live-lidao-app]# ll -a
总用量 0
drwxr-xr-x 2 root root  6 2024-05-15 10:20 .
drwxr-xr-x 3 root root 28 2024-05-15 10:20 ..
[root@devops-gitlab live-lidao-app]# git init
初始化空的 Git 版本库于 /app/code/live-lidao-app/.git/
[root@devops-gitlab live-lidao-app]# ll -a
总用量 0
drwxr-xr-x 3 root root  18 2024-05-15 10:20 .
drwxr-xr-x 3 root root  28 2024-05-15 10:20 ..
drwxr-xr-x 7 root root 119 2024-05-15 10:20 .git
[root@devops-gitlab live-lidao-app]# ll .git/
总用量 12
drwxr-xr-x 2 root root   6 2024-05-15 10:20 branches
-rw-r--r-- 1 root root  92 2024-05-15 10:20 config
-rw-r--r-- 1 root root  73 2024-05-15 10:20 description
-rw-r--r-- 1 root root  23 2024-05-15 10:20 HEAD
drwxr-xr-x 2 root root 242 2024-05-15 10:20 hooks
drwxr-xr-x 2 root root  21 2024-05-15 10:20 info
drwxr-xr-x 4 root root  30 2024-05-15 10:20 objects
drwxr-xr-x 4 root root  31 2024-05-15 10:20 refs
  • git相关的仓库

在这里插入图片描述

  • 书写代码,提交到暂存区
#书写代码 添加文件
echo oldboy >index.html
echo new app 完成度40% >index.html

#查看状态 仓库状态
git status
# 位于分支 master
#
# 初始提交
#
# 未跟踪的文件:
#   (使用 "git add <file>..." 以包含要提交的内容)
#
#	index.html
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)


#进行提交
git add .
git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#	新文件:    index.html
#
  • 提交代码到本地仓库
#提交到本地仓库
git commit -m '项目开始 完成60%'
[root@devops-gitlab live-lidao-app]# git commit -m "说明:项目刚刚成立,代码40%"
[master(根提交) 5faade3] 说明:项目刚刚成立,代码40%
 1 file changed, 1 insertion(+)
 create mode 100644 index.html

#查看状态
git status
# 位于分支 master
无文件要提交,干净的工作区

  • 再次修改文件并提交
#修改文件内容

# 再次提交
git add .
git commit -m '项目完成90%'
  • 进行回滚一步到位的
git checkout .
名字含义
git init初始化本地仓库目录
git config --global邮箱,用户名,颜色
git add提交数据到缓冲区(暂存区) git add . (所有文件) 或 git add 文件
git commit把暂存区的数据提交到本地仓库 git commit -m “标记/说明”
git status显示工作空间的状态
git reset回滚
git reset --soft cid(版本号)把指定的版本数据内容下载到暂存区
git reset HEAD暂存区 -->工作空间(被修改的状态)
git checkout文件下载到工作空间并可以使用 git checkout . 或 git checkout 文件
git reset --mix 版本号
git reset --hard 版本号把本地仓库指定版本信息数据下载到工作目录中

4.2 git区域与状态

  • 区域

在这里插入图片描述

  • 状态了解 熟悉

在这里插入图片描述

4.3 git分支 branch

1)分支?branch

分支即是平行空间,假设你在为某个手机系统研发拍照功能,代码已经完成了80%,但如果将这不完整的代码直接
提交到git仓库中,又有可能影响到其他人的工作,此时我们便可以在该软件的项目之上创建一个名叫”拍照功能”的分支,

这种分支只会属于你自己,而其他人看不到,等代码编写完成后再与原来的项目主分支合并下即可,这样即能保证代码不丢失,又不影响其他人的工作。

默认的分支-master 主分支,这个分支的代码一般都是可用,可以部署到生产环境的。

一般开发人员开发代码的时候创建dev分支,shopping分支。

应用名称分支每个分支对应独立功能。

2)详解

在这里插入图片描述

3)案例(了解)

  • 主分支完成提交
[root@devops-gitlab live-lidao-app]# cat index.html 
new app live 完成度100%
[root@devops-gitlab live-lidao-app]# git add .
[root@devops-gitlab live-lidao-app]# git commit -m "live_app_100%"
[master b0d7f3d] live_app_100%
 1 file changed, 1 insertion(+), 1 deletion(-)
  • 创建shopping分支 书写代码
#查看分支
git branch
* master

#创建分支
git branch shopping
git branch
* master
 shopping
 
#切换分支
git checkout shopping
Switched to branch 'shopping'
#查看 切换结果 git branch
 master
* shopping

#书写shopping代码·并提交
echo 'shopping 90%' >shopping.html
git add .
git commit -m 'shopping 90%'
echo 'shopping 100%' >shopping.html
git add .
git commit -m 'shopping 100%'

#把shopping分支合并到master分支中。
#切换到master 然后执行merge.
git checkout master
git merge shopping
[root@devops-gitlab live-lidao-app]# git merge shopping
更新 b0d7f3d..f847a2a
Fast-forward
 shopping.html | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 shopping.html
[root@devops-gitlab live-lidao-app]# ll
总用量 8
-rw-r--r-- 1 root root 27 2024-05-15 11:29 index.html
-rw-r--r-- 1 root root 17 2024-05-15 11:37 shopping.html

4)git 分支命令总结

git 分支相关命令
git branch查看分支
git branch name创建分支
git branch -d name删除分支
git checkout 分支名字切换分支
git merge 分支名字合并(吸收)分支(把指定的分支合并到当前分支中)
git checkout -b name创建分支并切换到这个分支

4.4 入住CBD(远程仓库)

  • 家 --> 公司 --> 代码
  • 家---->代码
  • 公共仓库:gitee.com/github.com
  • 私有仓库:gitlab,gogs

在这里插入图片描述

1)创建 仓库

在这里插入图片描述

2)连接远程仓库(用户名密码方式)

#添加远程仓库(用户名密码方式)
git remote add origin https://gitee.com/dws123456/lidao_live_app.git 
#右边是密钥认证方式    
git@gitee.com:dws123456/lidao_live_app.git 

git remote -v # 查看
#上传本地仓库的内容 到远程仓库
git push -u origin master
#需要输入账号的用户名和密码

[root@devops-gitlab live-lidao-app]# git push -u origin "master"
Counting objects: 15, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (15/15), 1.28 KiB | 0 bytes/s, done.
Total 15 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:dws123456/lidao_live_app.git
 * [new branch]      master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。

用户名是啥?下图里面的 :和/之间的就是用户名,可以在个人设置里面更改。

https://gitee.com/dws123456/lidao_live_app.git #用户名密码进行访问,上传.

git@gitee.com:dws123456/lidao_live_app.git #配置了密钥认证,密钥认证进行访问.

# 设置远程仓库的地址
git remote add origin git@gitee.com:dws123456/lidao_live_app.git
# 推送本地仓库的数据到远程仓库
git push -u origin "master"

在这里插入图片描述

  • 拉取的代码
[root@devops-gitlab ~]# git clone https://gitee.com/dws123456/lidao_live_app.git
正克隆到 'lidao_live_app'...
Username for 'https://gitee.com': 15733168732
Password for 'https://15733168732@gitee.com': 
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 15 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (15/15), done.
[root@devops-gitlab ~]# ll
总用量 4
-rw-------. 1 root root 1354 2024-02-18 16:37 anaconda-ks.cfg
drwxr-xr-x  3 root root   57 2024-05-15 13:38 lidao_live_app
[root@devops-gitlab ~]# cd lidao_live_app/
[root@devops-gitlab lidao_live_app]# ll -a
总用量 8
drwxr-xr-x  3 root root  57 2024-05-15 13:38 .
dr-xr-x---. 5 root root 215 2024-05-15 13:38 ..
drwxr-xr-x  8 root root 163 2024-05-15 13:38 .git
-rw-r--r--  1 root root  27 2024-05-15 13:38 index.html
-rw-r--r--  1 root root  17 2024-05-15 13:38 shopping.html
[root@devops-gitlab lidao_live_app]# git remote -v
origin	https://gitee.com/dws123456/lidao_live_app.git (fetch)
origin	https://gitee.com/dws123456/lidao_live_app.git (push)

3)连接远程仓库(密钥认证方式)

  • 创建秘钥对
[root@devops-gitlab live-lidao-app]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:/wgYf5XN71M955MeuftotOhgui5yW2/3bXJuF/Km8Gw root@devops-gitlab
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|                 |
|             +   |
|      . S   o o .|
|       + . . ..+=|
|      . + =. oo=B|
|    . o. *.+*E+XO|
|     o.++ooo+**X@|
+----[SHA256]-----+
[root@devops-gitlab lidao_live_app]# ll /root/.ssh/
总用量 12
-rw------- 1 root root 1679 2024-05-15 12:00 id_rsa
-rw-r--r-- 1 root root  400 2024-05-15 12:00 id_rsa.pub
[root@devops-gitlab live-lidao-app]# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4o7LVm5RA+id+QjbFy6JtpJsfVZj25ICN13C2zNvjFIhalVAAE1DYsuvt4njgPaSmW1JfU06Lci6HV+7HI5dEfVHO0dmA1HzxHzNquge99Zn6GaLTSwrnuvwfBQnUZrWbGasny2SyyuMvBw0THflDqiH8whMcbKtsel+Fkwm1TENqtvH9dJx2G9c+leoMUFIrq9/bPwTYx0vkYggx4i2/d1hadYIGS9BEeDjNI0m5H400ZHOEMesvMcXt8x4BbLBftrQeqzxst/uKpjysGER4bsL3+5ZM/ZHwLrxyTv4dic+bqh4N2f30677HvDUaE/3faROe8X5CDfGkTGYiqGgl root@devops-gitlab

  • 在远程仓库配置密钥

在这里插入图片描述

在这里插入图片描述

代码仓库访问方法说明
https每次连接的时候需要输入账号的用户名和密码
ssh必备常用. 密钥认证
#访问仓库的主机上 创建密钥对。
ssh-keygen

#修改之前配置的远程仓库地址
git remote remove origin 
git remote -v
git remote add origin git@gitee.com:dws123456/lidao_live_app.git

#查询
git remote -v
origin	git@gitee.com:dws123456/lidao_live_app.git (fetch)
origin	git@gitee.com:dws123456/lidao_live_app.git (push)

#创建新的文件上传到远程仓库测试
touch lidao.txt
git add .
git commit -m "110%"

#上传到远程仓库
git push -u origin master 

3)仓库管理命令小结

9.git远程仓库:
  1.配置与远程仓库的认证
     ssh√√√√√:     需要将服务器的公钥推送到指定用户下;
     https:(私有) 需要有用户名称,密码,每次都需要输入;
  2.添加远程仓库:
     git remote add origin [https://或者git(ssh)]
     删除 git remote remove orgin 即可
     git remote -v
  3.将本地的仓库内容,推送到远程仓库:  
     git add .
     git commit -m "Messages"
     git push -u origin branch (分支名字)    [ master | .... ]
     git pull origin branch(分支名字)
  4.如果有新员工加入
     指定仓库的代码都下载。
     git clone [https://|git]
     git push origin 分支名字
     git pull origin 分支名字

4.5 补充

1 tag

  • tag标签:给commit id设置别名,方便我们快速查看与使用,一般tag标签表示软件的版本.
#创建标签
COMMITID的一个别名,COMMITID不好记忆,   标签相对的好记忆.
 git tag -a "标签名称"   -m "描述"     基于当前最新的COMMITID
 git tag -a "标签名称"   -m "描述" commitID 指定版本打标签
#如何上传标签
 git push origin --tags
 git push origin "标签名称"
 Master: V1.0 V2.0
 Dev: b1.0 b2.0
 
 git clone  -b 标签、分支   https/git
 
 
 [root@devops-gitlab live-lidao-app]# git tag -a v1.0 -m "new 1.0"
[root@devops-gitlab live-lidao-app]# git push origin master 
Everything up-to-date
[root@devops-gitlab live-lidao-app]# git push origin --tags 
Counting objects: 1, done.
Writing objects: 100% (1/1), 156 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:dws123456/lidao_live_app.git
 * [new tag]         v1.0 -> v1.0

在这里插入图片描述

2 gitignore

  • 上传代码的时候,代码中可能包含临时文件cache .swp 排除

  • 在代码根目录中创建文件.gitignore 写上要排除的内容

  • 忽略上传到本地仓库的内容

gitignore忽略文件!!!!
     pyc
     cache/*
     config 
     
$ cat .gitignore
#*.jpg
*.tmp
cache/*
  • 应用场景:

    1. 程序运行时产生的垃圾文件(临时文件)
    2. 程序运行时产生的缓存文件(临时文件)
    3. 程序本地开发使用的图片文件
    4. 程序连接数据一类的配置文件(什么时候用,什么时候配置)
  • 各类语言的ignore文件
    链接: https://github.com/github/gitignore

4.6 总结

  • git clone
  • git add 与 git commit
  • git push
  • git remote add origin
  • git remote remove
  • git tag 标签
  • 分支
  • ci,cd,devops,devsecops
  • 代码上线流程

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

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

相关文章

INTERCONNECT 中使用库中器件制作一个损耗为 3 dB /m 的直波导

INTERCONNECT 中使用库中器件制作一个损耗为 3 dB /m 的直波导 正文 正文 首先&#xff0c;插入以下器件并连接。 其次&#xff0c;设置直波导 WGD_1 的器件参数&#xff0c;如下图所示&#xff1a; 运行仿真&#xff0c;在 ONA 中查看 gain 值。 可以看到&#xff0c;对应…

C++入门——日期类的实现

前言 生活中&#xff0c;我们时不时会遇到算天数的问题&#xff1a;高考倒计时、考研倒计时、过年倒计时...... 想解决这些问题无非就是实现一个年月日的计算器&#xff0c;那要怎么来实现呢&#xff1f; 下面就让我们来探究一下。 1.了解日期计算器的需求 1.1 表面需求 …

Java实现链表

链表 前言一、链表的概念及结构二、链表的分类三、链表的实现无头单向非循环链表实现无头双向链表实现具体代码 四、链表习题五、顺序表和链表的区别 前言 推荐一个网站给想要了解或者学习人工智能知识的读者&#xff0c;这个网站里内容讲解通俗易懂且风趣幽默&#xff0c;对我…

Linux shell编程学习笔记50:who命令

0 前言 2024年的网络安全检查又开始了&#xff0c;对于使用基于Linux的国产电脑&#xff0c;我们可以编写一个脚本来收集系统的有关信息。比如&#xff0c;我们可以使用who命令来收集当前已登陆系统的用户信息&#xff0c;当前运行级别等信息。 1. who命令 的功能、格式和选项…

再论任何图≌自己这一几何最最起码常识推翻平面公理

黄小宁 有了解析几何使人类对直线和射线的认识有革命性的飞跃。几何学有史2300年来一直认定起点和射出的方向都相同的射线必重合&#xff0c;任两异射线必有全等关系&#xff1b;解析几何使我发现这是2300年肉眼直观错觉。 h定理&#xff08;参考文献中的定理&#xff09;&am…

中国自动分拣行业TOP5玩家:大盘点(年收入开局12亿……)

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 随着物流行业的迅猛发展&#xff0c;自动分拣技术正成为提升物流效率的关键。中国自动分拣行业的几家领军企业在2023年展现了各自的战略…

1+x(Java)中级题库易混淆理论题(二)

冷备份实质就是数据库相关文件的复制 System.in是字节流 Map集合中的key是无序的 protected不能用于修饰类 接口中所有抽象方法默认使用public修饰 DML操作有&#xff1a;INSERT UPDATE DELETE SQL 语句中进行 group by 分组时&#xff0c;可以不写 where 子句 使…

【Web】2024 京麒CTF ezjvav题解

目录 step 0 step 1 step 2 EXP1 EXP2 step 0 进来是一个登录框 admin/admin成功登录 访问./source jwt伪造 带着伪造的jwt访问./source&#xff0c;拿到题目源码jar包 step 1 pom依赖有spring、fj、rome 反序列化入口在./Jsrc路由 有两层waf&#xff0c;一个是明…

【Docker】docker-compose 常用命令

启动服务&#xff1a; docker-compose up 如果你想在后台运行服务&#xff0c;可以添加 -d 标志&#xff1a; docker-compose up -d 开启所有服务 docker-compose start 停止服务&#xff1a; docker-compose down 查看服务状态&#xff1a; docker-compose ps 查看…

mumu 模拟器安装

1.下载安装 下载地址 Win 历史版本&#xff1a;http://mumu.163.com/update/win/Mac 历史 版本&#xff1a;http://mumu.163.com/20200515/25905_880858.html 2.设置为竖屏 在设置中心--界面设置页面设置宽720&#xff0c;高1280&#xff0c;DPI为240&#xff0c;如下图所示。…

读人工智能时代与人类未来笔记16_科学发现

1. 科学发现 1.1. 科学认识的发展往往涉及理论和实验之间的巨大差距以及大量的试错 1.2. 模型不是像传统的那样来自理论理解&#xff0c;而是来自基于实验结果得出结论的人工智能 1.2.1. 这种方法需要的专业知识不同于开发理论模型或传统计…

APM2.8下载固件的方法(两种办法详解)

1.把APM飞控用安卓手机的USB线插入电脑。 选择COM口&#xff0c;不要选择auto&#xff0c;如果你没有COM口说明你驱动安装有问题。 波特率115200。点击相应的图标就可以下载固件到飞控板。 请注意&#xff1a;烧录APM必须选择INSTALL FIRMWARE LEAGACY,第一个是用于刷pixhawk的…

C语言实现Hash Map(3):Map代码优化

在上一节中&#xff0c;我们学习了C语言实现Hash Map(2)&#xff1a;Map代码实现详解&#xff0c;通过代码&#xff0c;我们更深入地了解了Map实现的原理&#xff0c;学习了如何通过key找到对应的桶并加入节点。也正如上一节提到的&#xff0c;虽然这是github中star比较多的代码…

Android数据缓存框架 - 内存数据载体从LiveData到StateFlow

引言&#xff1a;所有成功者的背后&#xff0c;都有一份艰苦的历程&#xff0c;不要只看到了人前的风光&#xff0c;而低估了他们背后所付出的努力。 随着flow到流行度越来越高&#xff0c;有开发者呼吁我使用flow&#xff0c;于是我就如你们所愿&#xff0c;新增了StateFlow作…

C语言 | Leetcode C语言题解之第115题不同的子序列

题目&#xff1a; 题解&#xff1a; int numDistinct(char* s, char* t) {int m strlen(s), n strlen(t);if (m < n) {return 0;}unsigned long long dp[m 1][n 1];memset(dp, 0, sizeof(dp));for (int i 0; i < m; i) {dp[i][n] 1;}for (int i m - 1; i > 0;…

工控屏(触摸屏)怎么连接电脑

一、使用USB接口连接 连接方法&#xff1a;使用USB线连接触摸屏和电脑&#xff0c;触摸屏会自动识别并连接到电脑上。 二、使用HDMI接口连接 连接方法&#xff1a;1.首先要确认您的触摸屏是否有HDMI接口&#xff1b;2.将一端连接到触摸屏&#xff0c;另一端连接到电脑&#…

台式机安装ubuntu过程

1.单系统参考 20231210-超详细Ubuntu20.04单系统安装_台式机安装ubuntu系统-CSDN博客 2.双系统参考 双系统启动效果_哔哩哔哩_bilibili 安装前一定要先清空电脑的硬盘数据&#xff0c;不然可能会出现以下图片异常 意思估计是分区被占用了&#xff0c;出现这个问题 &#xff0…

GeoJSON数据转shp文件

利用QGis工具,使用GeoJSON数据转换生成shp文件,用于GeoServer发布shp图层服务。 首先准备一份GeoJSON文件,文件格式为“.json”,文件接入如下: 详细操作如下: 1、启动QGis工具 2、从左上角找到按钮“open data source manager”,点击打开数据源 3、选择数据源,显示如…

vue3 uni-app 中小程序实现 底部tabbar 中间凸起部分 或者说自定义底部tabbar [保姆级别教程]

1、先来看一下效果 2、代码实现 我们还是在 pages.json 中正常配置我们底部的tabbar 但是需要 添加一个字段 "custom": true, //开启自定义tabBar 不填每次原来的tabbar在重新加载时都回闪现 3、 在 pages同一级 或者 里面创建一个 子组件 用来放我们的模版 4、 …

用源码建站可能涉及知产侵权,建站的注意!

近日普推知产老杨看到央视报道一家公司用了某建站源码涉及知产侵权&#xff0c;起诉了全国八千多家公司&#xff0c;某梦自从创始人因病转给某公司后&#xff0c;也在大量起诉用其建站代码公司侵权&#xff0c;他们也都是申请了相关的著作权。 有的中小企业在运营中会涉及建站…