一文学会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)用于发布稳定版本和部署到生产环境mainmaster
开发分支(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 命令的一些常见参数和相应的使用场景举例:

  1. git pull

    • 场景:在正常情况下,直接使用 git pull 可以从远程仓库拉取最新的代码并合并到当前分支。
    • 示例:git pull
  2. git pull origin <远程分支名>

    • 场景:当需要从特定的远程分支拉取代码时,使用该参数。
    • 示例:git pull origin main
    • 说明:这将从名为 origin 的远程仓库的 main 分支拉取最新的代码并合并到当前分支。
  3. git pull --rebase

    • 场景:当希望使用 rebase 方式合并代码,保持提交历史整洁时使用该参数。
    • 示例:git pull --rebase
    • 说明:这将从远程仓库拉取最新的代码,并将当前分支的提交应用于拉取的代码之上。
  4. git pull --no-commit

    • 场景:当希望从远程仓库拉取最新的代码,但暂时不想创建合并提交时使用该参数。
    • 示例:git pull --no-commit
    • 说明:这将从远程仓库拉取最新的代码并合并到当前分支,但不会自动创建合并提交。您可以在继续操作之前对代码进行修改或执行其他操作。
  5. git pull --ff-only

    • 场景:当希望只进行快进合并(Fast-Forward Merge),不创建额外的合并提交时使用该参数。
    • 示例:git pull --ff-only
    • 说明:如果远程分支可以直接快进合并到当前分支,那么将执行快进合并;如果无法快进合并,将会中止操作并提示错误。

2. git push 命令

  1. git push

    • 场景:在正常情况下,直接使用 git push 可以将当前分支的提交推送到与之关联的远程分支。
    • 示例:git push
  2. git push origin <本地分支名>:<远程分支名>

    • 场景:将本地分支的提交推送到指定的远程分支。
    • 示例:git push origin feature-branch:remote-branch
    • 说明:这将把名为 feature-branch 的本地分支的提交推送到名为 remote-branch 的远程分支。
  3. git push --force

    • 场景:强制推送,用于覆盖远程分支的提交历史。
    • 示例:git push --force
    • 说明:这将强制推送本地分支的提交,覆盖远程分支的提交历史。请谨慎使用,因为它可能会导致数据丢失或冲突。
  4. git push --tags

    • 场景:将本地所有的标签(tags)推送到远程仓库。
    • 示例:git push --tags
    • 说明:这将把本地所有的标签推送到远程仓库,以便在远程仓库中创建相应的标签。
  5. 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
    
  1. 创建一个新分支并切换到该分支
  • 命令: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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】24.两两交换链表中的节点

题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&#xff1a…

K8s持久化存储(nfs网络存储)

数据卷 emptydir&#xff0c;是本地存储&#xff0c;pod重启&#xff0c;数据就不存在了&#xff0c;需要对数据持久化存储 1.nfs&#xff0c;网络存储 &#xff0c;pod重启&#xff0c;数据还存在的

Qt应用开发(基础篇)——时间微调输入框QDateTimeEdit、QDateEdit、QTimeEdit

一、前言 QAbstractSpinBox是全部微调输入框的父类&#xff0c;这是一种允许用户通过点击上下箭头按钮或输入数字来调整数值的图形用户界面控件&#xff0c;父类提供了当前值text、对齐方式align、只读readOnly等通用属性和方法。在上一篇数值微调输入框中有详细介绍。 QDateTi…

STM32 低功耗-停止模式

STM32 停止模式 文章目录 STM32 停止模式第1章 低功耗模式简介第2章 停止模式简介2.1 进入停止模式2.1 退出停止模式 第3章 停止模式程序部分总结 第1章 低功耗模式简介 在 STM32 的正常工作中&#xff0c;具有四种工作模式&#xff1a;运行、睡眠、停止以及待机模式。 在系统…

wpf 项目中使用 Prism + MaterialDesign

1.通过nuget安装MaterialDesign 2.通过nuget安装Prism 3.修改App.xmal <prism:PrismApplication x:Class"VisionMeasureGlue.App"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/…

PHP序列化,反序列化

一.什么是序列化和反序列化 php类与对象 类是定义一系列属性和操作的模板&#xff0c;而对象&#xff0c;就是把属性进行实例化&#xff0c;完事交给类里面的方法&#xff0c;进行处理。 <?php class people{//定义类属性&#xff08;类似变量&#xff09;,public 代表可…

3.2 防火墙

数据参考&#xff1a;CISP官方 目录 防火墙基础概念防火墙的典型技术防火墙企业部署防火墙的局限性 一、防火墙基础概念 防火墙基础概念&#xff1a; 防火墙&#xff08;Firewall&#xff09;一词来源于早期的欧式建筑&#xff0c;它是建筑物之间的一道矮墙&#xff0c;用…

31 对集合中的字符串,按照长度降序排列

思路&#xff1a;使用集合的sort方法&#xff0c;新建一个Comparator接口&#xff0c;泛型是<String>&#xff0c;重写里面的compare方法。 package jiang.com; import java.util.Arrays; import java.util.Comparator; import java.util.List;public class Practice4 {…

SQL Server数据库如何添加mysql链接服务器(Windows系统)

SQL Server数据库如何添加mysql链接服务器&#xff08;Windows系统&#xff09; 一、说明二、下载mysql的odbc驱动三、安装mysql odbc四、配置ODBC4.1 控制面板→ODBC数据源&#xff08;64位&#xff09;→双击打开4.2 添加msql odbc数据源 五、测试添加是否成功六、打开SSMS&a…

基于YOLOv7开发构建MSTAR雷达影像目标检测系统

MSTAR&#xff08;Moving and Stationary Target Acquisition and Recognition&#xff09;数据集是一个基于合成孔径雷达&#xff08;Synthetic Aperture Radar&#xff0c;SAR&#xff09;图像的目标检测和识别数据集。它是针对目标检测、机器学习和模式识别算法的研究和评估…

python爬虫3:requests库-案例1

python爬虫3&#xff1a;requests库-案例1 前言 ​ python实现网络爬虫非常简单&#xff0c;只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点&#xff0c;方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论&#xff0c;并不会对网…

ubuntu上安装mosquitto服务

1、mosquitto是什么 Mosquitto 项目最初由 IBM 和 Eurotech 于 2013 年开发&#xff0c;后来于 2016 年捐赠给 Eclipse 基金会。Eclipse Mosquitto 基于 Eclipse 公共许可证(EPL/EDL license)发布&#xff0c;用户可以免费使用。作为全球使用最广的 MQTT 协议实现之一 &#x…

MySQL游标(二十九)

二八佳人体似酥&#xff0c;腰悬利剑斩愚夫&#xff0c;虽然不见人头落,暗里教君骨髓枯。 上一章简单介绍了MySQL流程控制(二十八) ,如果没有看过,请观看上一章 一. 游标 一.一 什么是游标 虽然我们也可以通过筛选条件 WHERE 和 HAVING&#xff0c;或者是限定返回记录的关键…

自动化测试CSS元素定位

目录 1.1 CSS定位 1.1.1 绝对路径定位 1.1.2 相对路径定位 1.1.3 类名定位 1.1.4 属性定位 1.1.4.1 ID属性定位 1.1.4.2 其他属性定位 1.1.4.3 模糊属性定位 1.1.5 子页面元素查找 1.1.6 伪类定位 1.1 CSS伪类 1.1 CSS定位 1.1.1 绝对路径定位 目标 查找第一个文…

任务 13、MidJourney种子激发极致创作,绘制震撼连贯画作

13.1 任务概述 通过本次实验任务&#xff0c;学员将深入了解Midjourney种子的概念和重要性&#xff0c;以及种子对生成图像的影响。他们将学会在Midjourney平台中设置种子值并调整其参数&#xff0c;以达到所需的效果。此外&#xff0c;任务还详细介绍了Midjourney V4.0版本中…

36.利用解fgoalattain 有约束多元变量多目标规划问题求解(matlab程序)

1.简述 多目标规划的一种求解方法是加权系数法&#xff0c;即为每一个目标赋值一个权系数&#xff0c;把多目标模型转化为一个单目标模型。MATLAB的fgoalattain()函数可以用于求解多目标规划。 基本语法 fgoalattain()函数的用法&#xff1a; x fgoalattain(fun,x0,goal,weig…

acwing第 115 场周赛第二题题解:维护最大值和次大值

一、链接 5132. 奶牛照相 二、题目 约翰的农场有 nn 头奶牛&#xff0c;编号 1∼n1∼n。 其中&#xff0c;第 ii 头奶牛的宽度为 wiwi&#xff0c;高度为 hihi&#xff0c; 有一天&#xff0c;它们聚餐后决定拍照留念。 关于拍照的描述如下&#xff1a; 它们一共拍了 nn…

2020年12月 Python(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

一、单选题 第1题 执行语句print(1010.0)的结果为&#xff1f; A&#xff1a;10 B&#xff1a;10.0 C&#xff1a;True D&#xff1a;False 正确的答案是 C&#xff1a;True。 解析&#xff1a;在Python中&#xff0c;比较运算符 “” 用于比较两个值是否相等。在这个特…

[Qt]FrameLessWindow实现调整大小、移动弹窗并具有Aero效果

说明 我们知道QWidget等设置了this->setWindowFlags(Qt::FramelessWindowHint);后无法移动和调整大小&#xff0c;但实际项目中是需要窗口能够调整大小的。所以以实现FrameLess弹窗调整大小及移动弹窗需求&#xff0c;并且在Windows 10上有Aero效果。 先看一下效果&#xf…

java单例模式(详)

单例模式的应用场景 单例模式的优点 饿汉懒汉 1.所谓单例模式&#xff0c;就是采取一定个方法保证整个软件系统中&#xff0c;对某个类只能存在一个对象实例。 2.实现&#xff1a;饿汉式&#xff0c;懒汉式 3.区分懒汉式和饿汉式 饿汉式&#xff1a;坏处&#xff1a;加载时间过…