一文学会git常用命令和使用指南
文章目录
- 0. 前言
- 1.分支分类和管理
- 1. 分支分类规范:
- 2. 最佳实践
- 3. 分支命名规范示例:
- 4. 分支管理方法:
- 2. commit 注释规范
- 1. 提交注释结构:
- 2. 提交注释的准则:
- 3. git 常用命令
- 1. git pull 核心用法
- 2. git push 命令
- 1. 初始化一个新的仓库
- 2. 克隆一个远程仓库
- 3. 添加文件到暂存区
- 4. 添加所有修改的文件到暂存区
- 5. 提交暂存区的文件到仓库
- 6. 查看当前仓库的状态
- 7. 查看提交历史记录
- 8. 查看文件的修改差异
- 9. 查看分支列表
- 10. 创建一个新分支
- 11. 切换到另一个分支
- 13. 合并指定分支到当前分支
- 14. 删除分支
- 15. 撤销工作区的修改
- 16. 撤销暂存区的文件
- 17. 回退到上一个提交版本
- 18. 回退到指定提交版本
- 19. 拉取远程仓库的更新到本地
- 20. 推送本地分支到远程仓库
- 21. 强制推送本地分支到远程仓库
- 22. 查看远程仓库列表
- 23. 添加一个远程仓库
- 24. 移除一个远程仓库
- 25. 创建一个带有注释的标签
- 26. 查看标签列表
- 27. 查看标签的详细信息
- 28. 推送本地标签到远程仓库
- 29. 推送所有本地标签到远程仓库
- 30. 删除本地标签
- 31. 删除远程标签
- 32. 使用Git配置别名
- 33. 查看远程仓库信息
- 34. 创建并切换到一个新分支
- 35. 重命名分支
- 36. 查看远程仓库的提交记录
- 37. 从远程仓库拉取指定分支到本地
- 38. 查看远程分支列表
- 39. 将指定分支重置到特定提交版本
- 40. 修复合并冲突
- 41. 修改最后一次提交的注释
- 42. 暂时存储当前的修改
- 43. 查看存储的修改列表
- 44. 恢复最近一次存储的修改
- 45. 恢复指定的存储的修改
- 46. 删除最近一次存储的修改
- 47. 删除指定的存储的修改
- 4.参考文档
0. 前言
背景:最近有刚入职公司的小伙伴们总是在git使用过程中一系列问题,而且问题很多都是低级问题。所以我觉得有必要分享一个帖子,和大家学习一下。找了一下公司git管理规范文档,发现文档的描述不是很好理解,而且已经和现在的管理方式有一定的出入。所以我自行总结了一个。希望大家能有所收获和收藏。
1.分支分类和管理
分支分类和管理是一个关键的版本控制实践,它可以帮助团队组织和管理代码开发过程。
1. 分支分类规范:
以下是以表格形式展示的分支分类规范和命名示例,目前git 没有硬性规范,这些规范都是大家在长期使用的过程中总结出来的,可能每个公司都有差异不用上纲上线
分支类型 | 描述 | 命名示例 |
---|---|---|
主分支(Main Branch) | 用于发布稳定版本和部署到生产环境 | main 、master |
开发分支(Development Branch) | 用于整体开发和集成新功能 | develop |
特性分支(Feature Branch) | 用于开发单个功能或特性 | feature/user-authentication feature/payment-integration |
发布分支(Release Branch) | 用于准备项目发布 | release/1.0.0 release/2.3.1 |
热修复分支(Hotfix Branch) | 用于紧急修复生产环境中的问题 | hotfix/bug-fix hotfix/security-patch |
2. 最佳实践
列举一个分支管理的最佳实践,仅供大家参考。
使用Git一般至少2个分支:master和develop
master:生产环境都来主干分支拿数据部署,也可以使用钩子自动完成
develop:开发分支,开发人员都是检出这个分支开发
使用辅助分支
feature:具体的功能开发分支,只与develop分支交互
release:发布版本,再经测试迭代后需要合并到master分支
hotfix:紧急bug修复分支,最后需要合并到master和develop分支中
3. 分支命名规范示例:
- 使用小写字母和短划线(-)作为分支命名的分隔符。
- 使用清晰、简洁的名称来描述分支的目的和内容。
- 遵循一致的命名约定,以便团队成员能够轻松理解和识别分支。
4. 分支管理方法:
- 使用版本控制系统(如Git)来跟踪和管理分支的创建、合并和删除。
- 定义明确的分支策略和工作流程,包括分支的创建、合并和命名规范。
- 确保团队成员了解和遵守分支管理规范,并进行必要的培训和沟通。
- 定期进行分支合并和清理,删除不再需要的分支,以保持分支结构的清晰性和可维护性。
2. commit 注释规范
提交(commit)注释是版本控制系统中记录每次代码提交的重要信息。为了保持提交历史的清晰、易读和易于理解,以下是一种常用的提交注释规范, 这个规范是大多数公司在使用的,可能每个公司还有自己的特殊定义或者提交注释术语,这个不是标注答案,希望大家根据自己公司的规范提交注释,如果没有规范,可以参考下面的。
1. 提交注释结构:
<类型>: <描述>
[可选] <正文>
-
<类型>
:表示提交的类型,可以是以下之一:- 新增(feat):添加新功能或功能模块
- 修复(fix):修复问题或错误
- 文档(docs):更新文档或注释
- 样式(style):调整代码格式或样式,不影响代码逻辑
- 重构(refactor):重构代码,既不修复错误也不添加新功能
- 测试(test):添加或修改测试代码
- 杂项(chore):构建过程或辅助工具的变动
-
<描述>
:简明扼要地描述本次提交的目的或变动内容。 -
[可选] <正文>
:可选项,用于提供更详细的提交说明、变动原因、解决方案等。
也有下面这种常见的分类,不用纠结使用哪种,公司有规范,遵循公司规范,公司没有遵循自己学习到的规范。
- build:修改项目的的构建系统(xcodebuild、webpack、glup等)的提交
- ci:修改项目的持续集成流程(Kenkins、Travis等)的提交
- chore:构建过程或辅助工具的变化
- docs:文档提交(documents)
- feat:新增功能(feature)
- fix:修复 bug
- pref:性能、体验相关的提交
- refactor:代码重构
- revert:回滚某个更早的提交
- release:发布新版本
- style:不影响程序逻辑的代码修改、主要是样式方面的优化、修改
- test:测试相关的开发
- improvement:在现有功能上优化、改进
2. 提交注释的准则:
- 使用简洁、明确的语言描述提交的目的,避免过于模糊或冗长的注释。
- 使用一般现在时(如"添加功能")而不是过去时来描述提交的变动。
- 遵循一致的注释风格和约定,确保团队成员能够轻松理解和阅读提交历史。
- 针对重要的提交,可以在正文部分提供更详细的说明,包括解决方案、参考文档等。
比如我举个例子,下面是一个项目的git代码提交的注释,大家可以看下。
feat:添加用户认证功能
fix:修复支付模块中的空指针异常
docs:更新README,添加安装说明
style:按照编码规范格式化代码
refactor:优化数据访问层,提升性能
test:添加API端点的单元测试
chore:更新部署脚本
其实我还看到过一些公司的git 注释规范是feat[模块名]:描述
这样一种结构,我觉得也是一种优秀的实践,粒度更细。
3. git 常用命令
1. git pull 核心用法
在特殊情况下我们如果使用IDEA pull 代码可以根据具体的场景操作
参数解释:
--rebase
:使用 rebase 方式合并代码,将本地提交应用于拉取的代码之上,以保持提交历史整洁。-ff-only
:只进行快进合并(Fast-Forward Merge),如果无法快进合并,则中止操作并提示错误。--no-ff
:禁用快进合并,无论是否可以快进合并,都会创建一个新的合并提交。--squash
:在合并代码之前,将多个连续的提交压缩为一个提交,并且不会自动创建合并提交。--no-commit
:拉取代码后不会自动创建合并提交,允许您在继续操作之前对代码进行修改或执行其他操作。--no-verify
:在执行提交时,跳过 Git 钩子(Git hooks)的验证步骤。
# 使用 rebase 进行合并
git pull --rebase# 只进行快进合并
git pull --ff-only# 禁用快进合并,创建一个新的合并提交
git pull --no-ff# 在合并代码之前,将多个连续的提交压缩为一个提交
git pull --squash# 拉取代码后不会自动创建合并提交
git pull --no-commit# 跳过 Git 钩子的验证步骤
git pull --no-verify
git pull
命令用于从远程仓库拉取最新的代码并合并到当前分支。下面是 git pull
命令的一些常见参数和相应的使用场景举例:
-
git pull
- 场景:在正常情况下,直接使用
git pull
可以从远程仓库拉取最新的代码并合并到当前分支。 - 示例:
git pull
- 场景:在正常情况下,直接使用
-
git pull origin <远程分支名>
- 场景:当需要从特定的远程分支拉取代码时,使用该参数。
- 示例:
git pull origin main
- 说明:这将从名为
origin
的远程仓库的main
分支拉取最新的代码并合并到当前分支。
-
git pull --rebase
- 场景:当希望使用 rebase 方式合并代码,保持提交历史整洁时使用该参数。
- 示例:
git pull --rebase
- 说明:这将从远程仓库拉取最新的代码,并将当前分支的提交应用于拉取的代码之上。
-
git pull --no-commit
- 场景:当希望从远程仓库拉取最新的代码,但暂时不想创建合并提交时使用该参数。
- 示例:
git pull --no-commit
- 说明:这将从远程仓库拉取最新的代码并合并到当前分支,但不会自动创建合并提交。您可以在继续操作之前对代码进行修改或执行其他操作。
-
git pull --ff-only
- 场景:当希望只进行快进合并(Fast-Forward Merge),不创建额外的合并提交时使用该参数。
- 示例:
git pull --ff-only
- 说明:如果远程分支可以直接快进合并到当前分支,那么将执行快进合并;如果无法快进合并,将会中止操作并提示错误。
2. git push 命令
-
git push
- 场景:在正常情况下,直接使用
git push
可以将当前分支的提交推送到与之关联的远程分支。 - 示例:
git push
- 场景:在正常情况下,直接使用
-
git push origin <本地分支名>:<远程分支名>
- 场景:将本地分支的提交推送到指定的远程分支。
- 示例:
git push origin feature-branch:remote-branch
- 说明:这将把名为
feature-branch
的本地分支的提交推送到名为remote-branch
的远程分支。
-
git push --force
- 场景:强制推送,用于覆盖远程分支的提交历史。
- 示例:
git push --force
- 说明:这将强制推送本地分支的提交,覆盖远程分支的提交历史。请谨慎使用,因为它可能会导致数据丢失或冲突。
-
git push --tags
- 场景:将本地所有的标签(tags)推送到远程仓库。
- 示例:
git push --tags
- 说明:这将把本地所有的标签推送到远程仓库,以便在远程仓库中创建相应的标签。
-
git push --set-upstream origin <本地分支名>
- 场景:将本地分支与远程分支进行关联并推送。
- 示例:
git push --set-upstream origin feature-branch
- 说明:这将推送本地分支的提交到名为
origin
的远程仓库,并将本地分支与远程分支进行关联。
1. 初始化一个新的仓库
- 命令:git init
- 示例:在当前目录初始化一个新的Git仓库。
git init
2. 克隆一个远程仓库
- 命令:git clone <远程仓库地址>
- 示例:克隆名为origin的远程仓库到本地。
git clone https://github.com/user/repo.git
3. 添加文件到暂存区
- 命令:git add <文件名>
- 示例:将file.txt添加到暂存区。
git add file.txt
4. 添加所有修改的文件到暂存区
- 命令:git add .
- 示例:将所有修改的文件添加到暂存区。
git add .
5. 提交暂存区的文件到仓库
- 命令:git commit -m “提交注释”
- 示例:提交暂存区的文件到仓库,并添加注释。
git commit -m "提交文件"
6. 查看当前仓库的状态
- 命令:git status
- 示例:查看当前仓库的状态。
git status
7. 查看提交历史记录
- 命令:git log
- 示例:查看当前分支的提交历史记录。
git log
8. 查看文件的修改差异
- 命令:git diff <文件名>
- 示例:查看file.txt文件的修改差异。
git diff file.txt
9. 查看分支列表
- 命令:git branch
- 示例:查看当前仓库的所有分支列表。
git branch
10. 创建一个新分支
- 命令:git branch 分支名
- 示例:创建一个名为feature的新分支。
git branch feature
11. 切换到另一个分支
- 命令:git checkout <分支名>
- 示例:切换到分支feature。
git checkout feature
- 创建一个新分支并切换到该分支
- 命令:git checkout -b <分支名>
- 示例:创建一个名为bugfix的新分支并切换到该分支。
git checkout -b bugfix
13. 合并指定分支到当前分支
- 命令:git merge <分支名>
- 示例:将分支feature合并到当前分支。
git merge feature
14. 删除分支
- 命令:git branch -d <分支名>
- 示例:删除分支feature。
git branch -d feature
15. 撤销工作区的修改
- 命令:git checkout – <文件名>
- 示例:撤销对file.txt文件的修改。
git checkout -- file.txt
16. 撤销暂存区的文件
- 命令:git reset HEAD <文件名>
- 示例:撤销对file.txt文件的暂存。
git reset HEAD file.txt
17. 回退到上一个提交版本
- 命令:git reset HEAD^
- 示例:回退到上一个提交版本。
git reset HEAD^
18. 回退到指定提交版本
- 命令:git reset <提交哈希值>
- 示例:回退到提交哈希值为abc123的版本。
git reset abc123
19. 拉取远程仓库的更新到本地
- 命令:git pull <远程仓库名> <分支名>
- 示例:从远程仓库origin的master分支拉取更新。
git pull origin master
20. 推送本地分支到远程仓库
- 命令:git push <远程仓库名> <分支名>
- 示例:推送当前分支到远程仓库origin。
git push origin feature
21. 强制推送本地分支到远程仓库
- 命令:git push -f <远程仓库名> <分支名>
- 示例:强制推送当前分支到远程仓库origin。
git push -f origin feature
22. 查看远程仓库列表
- 命令:git remote -v
- 示例:查看当前仓库关联的远程仓库列表。
git remote -v
23. 添加一个远程仓库
- 命令:git remote add <远程仓库名> <远程仓库地址>
- 示例:添加一个名为upstream的远程仓库。
git remote add upstream https://github.com/user/repo.git
24. 移除一个远程仓库
- 命令:git remote remove <远程仓库名>
- 示例:移除远程仓库origin。
git remote remove origin ```
25. 创建一个带有注释的标签
- 命令:git tag -a <标签名> -m “标签注释”
- 示例:创建一个名为v1.0的带有注释的标签。
git tag -a v1.0 -m "版本1.0发布" ```
26. 查看标签列表
- 命令:git tag
- 示例:查看当前仓库的所有标签列表。
git tag ```
27. 查看标签的详细信息
- 命令:git show <标签名>
- 示例:查看标签v1.0的详细信息。
git show v1.0 ```
28. 推送本地标签到远程仓库
- 命令:git push <远程仓库名> <标签名>
- 示例:推送本地标签v1.0到远程仓库origin。
git push origin v1.0
29. 推送所有本地标签到远程仓库
- 命令:git push --tags
示例:推送所有本地标签到远程仓库。git push --tags
30. 删除本地标签
- 命令:git tag -d <标签名>
- 示例:删除本地标签v1.0。
git tag -d v1.0
31. 删除远程标签
- 命令:git push <远程仓库名> --delete <标签名>
- 示例:删除远程仓库origin的标签v1.0。
git push origin --delete v1.0 ```
32. 使用Git配置别名
- 命令:git config --global alias.<别名> <命令>
- 示例:将git status命令配置为别名st。
git config --global alias.st status
33. 查看远程仓库信息
- 命令:git remote show <远程仓库名>
- 示例:查看远程仓库origin的详细信息。
git remote show origin
34. 创建并切换到一个新分支
- 命令:git checkout -b <分支名>
- 示例:创建一个名为feature的新分支并切换到该分支。
git checkout -b feature
35. 重命名分支
- 命令:git branch -m <旧分支名> <新分支名>
- 示例:将旧分支名feature改为new-feature。
git branch -m feature new-feature
36. 查看远程仓库的提交记录
- 命令:git log <远程仓库名>/<分支名>
- 示例:查看远程仓库origin的master分支的提交记录。
git log origin/master
37. 从远程仓库拉取指定分支到本地
- 命令:git fetch <远程仓库名> <远程分支名>:<本地分支名>
- 示例:从远程仓库origin拉取develop分支到本地的feature分支。
git fetch origin develop:feature
38. 查看远程分支列表
- 命令:git branch -r
- 示例:查看远程仓库的所有分支列表。
git branch -r
39. 将指定分支重置到特定提交版本
- 命令:git reset <提交哈希值> --hard
- 示例:将当前分支重置到提交哈希值为abc123的版本。
git reset abc123 --hard
40. 修复合并冲突
- 命令:git merge --abort
- 示例:在合并过程中,如果出现冲突,使用该命令放弃合并并恢复到合并之前的状态。
git merge --abort
41. 修改最后一次提交的注释
- 命令:git commit --amend
- 示例:修改最后一次提交的注释。
git commit --amend
42. 暂时存储当前的修改
- 命令:git stash save
- 示例:暂时存储当前的修改。
git stash save
43. 查看存储的修改列表
- 命令:git stash list
- 示例:查看存储的修改列表。
git stash list
44. 恢复最近一次存储的修改
- 命令:git stash apply
- 示例:恢复最近一次存储的修改到工作区。
git stash apply
45. 恢复指定的存储的修改
- 命令:git stash apply <stash@{编号}>
- 示例:恢复编号为0的存储的修改到工作区。
git stash apply stash@{0}
46. 删除最近一次存储的修改
- 命令:git stash drop
- 示例:删除最近一次存储的修改。
git stash drop
47. 删除指定的存储的修改
- 命令:git stash drop <stash@{编号}>
- 示例:删除编号为0的存储的修改。
git stash drop stash@
4.参考文档
Git 完整命令手册地址:http://git-scm.com/docs
PDF 版命令手册:github-git-cheat-sheet.pdf
相关文章:

一文学会git常用命令和使用指南
文章目录 0. 前言1.分支分类和管理1. 分支分类规范:2. 最佳实践3. 分支命名规范示例:4. 分支管理方法: 2. commit 注释规范1. 提交注释结构:2. 提交注释的准则: 3. git 常用命令1. git pull 核心用法2. git push 命令1…...
[PyTorch][chapter 46][LSTM -1]
前言: 长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决一般的RNN(循环神经网络)存在的长期依赖问题而专门设计出来的。 目录: 背景简介 LSTM C…...

寄存器详解(二)
目录 内存中字的存储 示例: 数据段寄存器DS与[address] 字的传送 数据段简介 CPU提供的栈机制 栈段寄存器SS和栈顶指针寄存器SP PUSH AX指令的完整描述 示例图 POP AX指令的完整描述 示例图 栈顶超界问题 示例一: 示例二: 内存中字…...
Java AIO
在Java中,AIO代表异步I/O(Asynchronous I/O),它是Java NIO的一个扩展,提供了更高级别的异步I/O操作。AIO允许应用程序执行非阻塞I/O操作,而无需使用Selector和手动轮询事件的方式。 与传统的NIO和Java NIO…...
java集合总结
1.常见集合 Collection List:有序可重复集合,可直接根据元素的索引来访问 Vector-StackArrayListLinkedList Queue:队列集合 Deque-LinkedList、ArrayDequePriorityQueue Set:无序不可重复集合,只能根据元素本身来访问…...

list交并补差集合
list交并补差集合 工具类依赖 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.8.1</version> </dependency><dependency><groupId>commons-collections&…...
【微信小程序】父组件修改子组件数据或调用子组件方法
一、使用场景 页面中用到了自定义组件形成父子组件关系,在父组件某个特定时期想要操作子组件中的数据或方法,比如离开页面的时候清空子组件的数据。 二、方法 父组件可以通过this.selectComponent方法获取子组件实例对象,这样就可以直接访…...
frp通过nginx映射multipart/x-mixed-replace; boundary=frame流媒体出外网访问
要通过Nginx访问multipart/x-mixed-replace流媒体协议,并通过FRP进行映射访问,你可以按照以下步骤进行操作: 配置Nginx以支持multipart/x-mixed-replace流媒体协议。你需要编辑Nginx的配置文件(通常是nginx.conf)&…...

Kubernetes概述
Kubernetes概述 使用kubeadm快速部署一个k8s集群 Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装 Kubernetes高可用集群二进制部署(二)ETCD集群部署 Kubernetes高可用集群二进制部署(三)部署…...

Jmeter教程
目录 安装与配置 一:下载jdk——配置jdk环境变量 二:下载JMeter——配置环境变量 安装与配置 一:下载jdk——配置jdk环境变量 1.新建环境变量变量名:JAVA_HOME变量值:(即JDK的安装路径) 2.编辑Path%J…...
用Rust实现23种设计模式之建造者模式
当使用 Rust 实现建造者模式时,我们可以通过结构体和方法链来实现。建造者模式是一种创建型设计模式,它允许你按照特定的顺序构建复杂对象,同时使你能够灵活地构建不同的变体。下面是一个使用 Rust 实现建造者模式的示例, 在示例中…...

聚观早报 | 腾讯字节等企业驰援防汛救灾;新能源车7月销量单出炉
【聚观365】8月4日消息 腾讯字节等企业驰援防汛救灾新能源车7月销量成绩单出炉Model Y等车型低温续航衰减严重华为Mate60系列猜想图曝光支付宝做短视频引来羊毛党 腾讯字节等企业驰援防汛救灾 近日,京津冀地区遭遇极端降雨天气,引发洪涝和地质灾害&…...

Crack:CAD Exchanger SDK 3.20 Web Toolkit 应用
在CAD Exchanger SDK 版本 3.20.0中,我们在 Web Toolkit 中包含了绘图、BIM 和 MCAD 查看器的示例,以展示如何使用每个工具可视化数据。这些查看器具有显示不同类型数据的特定功能,允许用户根据自己的需求单独使用它们。我们将继续增强每个查…...
改造 ChatGPT-Next-Web 项目重新生成 Docker 镜像
改造 ChatGPT-Next-Web 项目重新生成 Docker 镜像 0.背景1. 修改代码2. 生成 Docker 镜像3. 上传 Docker 镜像4. 运行 Docker 镜像 0.背景 需要通过 ChatGPT-Next-Web 使用自己搭建的 OpenAI API 兼容的服务器,需要对 ChatGPT-Next-Web 项目的少量代码进行改造。 …...
git修改commit日志
由于公司对版本提交日志进行检查,如果不符合要求,则push失败。 以下是修改commit日志的方法: 1.进入到提交代码文件所在目录,即git所在目录下 cd app-repository 2.git log git log commit bf29e3e5e799d364fe2975677baf18c9…...

Qt之qml和widget混合编程调用
首先是创建一个widget项目 然后需要添加qml和quick的插件使用 QT quickwidgets qml 接着要在界面上创建一个quickwidget和按钮 创建一个c对象类 QObjectQml #ifndef QOBJECTQML_H #define QOBJECTQML_H#include <QObject> #include <QDebug> class QObjectQml …...
深度学习torch基础知识
torch. detach()拼接函数torch.stack()torch.nn.DataParallel()np.clip()torch.linspace()PyTorch中tensor.repeat()pytorch索引查找 index_select detach() detach是截断反向传播的梯度流 将某个node变成不需要梯度的Varibale。因此当反向传播经过这个node时,梯度…...

【JAVA】正则表达式是啥?
个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言正则表达式正则表达式语法正则表达式的特点捕获组实例 前言 如果我们想要判断给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”),…...

网络安全之原型链污染
目录: 目录: 一、概念 二、举例 三、 实操了解 总结 四、抛出原题,历年原题复现 第一题: 五、分析与原理 第二题: 八、分析与原理 九、具体操作,payload与结果 结果: 一、概念 Java…...

【腾讯云Cloud Studio实战训练营】使用Cloud Studio迅捷开发一个3D家具个性化定制应用
目录 前言: 一、腾讯云 Cloud Studio介绍: 1、接近本地 IDE 的开发体验 2、多环境可选,或连接到云主机 3、随时分享预览效果 4、兼容 VSCode 插件 5、 AI代码助手 二、腾讯云Cloud Studio项目实践(3D家具个性化定制应用&…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...
比较数据迁移后MySQL数据库和ClickHouse数据仓库中的表
设计一个MySQL数据库和Clickhouse数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
中国政务数据安全建设细化及市场需求分析
(基于新《政务数据共享条例》及相关法规) 一、引言 近年来,中国政府高度重视数字政府建设和数据要素市场化配置改革。《政务数据共享条例》(以下简称“《共享条例》”)的发布,与《中华人民共和国数据安全法》(以下简称“《数据安全法》”)、《中华人民共和国个人信息…...