Git日常使用技巧 - 笔记

news2024/11/23 12:15:26

Git日常使用技巧 - 笔记

  • Git是目前世界上最先进的分布式版本控制系统

  • 学习资料

    • 廖雪峰
  • 学习视频

    • https://www.bilibili.com/video/BV1pX4y1S7Dq/?spm_id_from=333.337.search-card.all.click&vd_source=2ac127043ccd79c92d5b966fd4a54cd7
  • Git 命令在线练习工具

    • https://learngitbranching.js.org/?locale=zh_CN

一、Git基础

1. 版本控制系统

1.1 集中式的版本控制系统

  • 定义
    • 版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器
  • 缺点
    • 本地没有完整的版本库历史,依赖于中央服务器,需要联网才能提交内容给中央服务器,断网状态下既不能提交,也不能回滚
    • 在局域网外,如果网速过慢,提交时间过长

image-20230224211721973

1.2 分布式版本管理系统

  • 定义

    • 分布式版本控制系统可以没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。
  • 多人协作

    • 每个人电脑上都有一个服务器,有着完整的版本库,你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了
    • 分布式版本控制系统通常也有一台充当“中央服务器”的电脑,用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便
  • 优势

    • 分布式版本控制系统的安全性要高很多,每个人都是一个backup
    • 每个人的本地都有完整的版本库历史,可以直接从本地服务器直接回滚,只有需要与外界同步修改时才需要联网

image-20230224225948671

1.3 区别

  • 集中式属于主从设计,只有中央服务器拥有完整的版本库历史,本次只有当前版本以及部分历史信息,类似于银行,自助银行终端可以向银行查询账本,如果银行没有了,则整个完整的账本也没有了
  • 分布式是同步设计,每个本地都有自己完整的版本库历史,如果用于协同工作的交换服务器报废了,可以选择一份最接近的版本库提交到新的交换服务器中,以减少损失。

2. Git 安装

2.1 window git 安装

  • 参考
    • https://www.liaoxuefeng.com/wiki/896043488029600/896067074338496
  • 安装
    • 从官网下载安装程序,安装成功会在在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西

2.2 linux安装

  • debian和ubuntu
    • sudo apt-get install git
  • 其他版本则官网下载安装即可

3. 工作区与版本库

3.1 工作区

  • 在电脑上看到的目录,如learngit

3.2 版本库

  • 工作区中有过一个隐藏的.git,不算工作区,而是版本库

  • 版本库中有,暂存区(stage) 和 git自动创建的master分支, HEAD 是一个指向当前分支的指针

image-20230225124456507

  • 我们add 后的文件都会存在暂存区

    • git add readme.txt
      
    • image-20230225124645838

  • git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支

    • image-20230225124738381
  • 提交后暂存区清空

    • image-20230225125348189

二,版本库

1. 创建本地版本库

1.1 从一个空目录创建空仓库

  • 创建目录

    • mkdir learngit
      
  • 进入目录,执行初始化命令将目录变为Git仓库

    • git init
      
  • 创建成功,则目录下多了一个.git文件,用于跟踪管理仓库,如果被隐藏则 用 ls-ah 查看所有文件

  • 初始设置:设置名字和邮箱
    • 名字

      • git config --global user.name "binge"
    • email

      • git config --global user.email "xxx@163.com"
    • –global 参数表示你这台机器上所有的Git仓库都会使用这个配置

1.2 直接从远程仓库克隆版本库到本地的空仓库

  • 可以在github上找到版本库的地址,Git支持ssh协议和https协议

    • image-20230514120518696
  • 在 Git bash 打开用于保存项目的目录,执行克隆命令

    • git clone 项目的地址
      
本地找一个仓库,使用ssh协议拉取远程仓库
  • image-20230514124001731

  • 如果本地是新的git环境,可能会报错:Please make sure you have the correct access rights and the repository exists,很大可能是公钥问题

    • bash 查看是否有密码

      • cat ~/.ssh/id_rsa.pub      # 控制台上输出内容
        
    • 没有则新建,一路默认操作即可

      • ssh-keygen -t rsa
        
    • 拷贝公钥放到github的Settings -> SSH keys 中

      • image-20230514124521513
https协议拉取远程仓库

image-20230526002045674

master与main分支
  • main是git新的默认主分支名字
  • 当本地创建版本库时,默认还是master作为主分支名字
  • 当空目录clone远程库到本地,然后进入目录会发现默认的主分支名字为main

image-20230526002444602

2. 删除本地仓库

  • 删除仓库文件夹下隐藏的.git文件即可

    • ls -a  查看隐藏文件
      
      rm rf .git 删除.git文件
      

3. 将文件加入版本库进行跟踪

  • 在新建的仓库中的文件或者我们在克隆仓库后新建的文件,都是未被版本库跟踪的,我们可以通过命令进行跟踪

3.1 对单个/多个文件进行添加暂存区

  • 在仓库文件夹下创建文件并添加暂存区,添加多个文件,则用空格隔开

  • git add  readme.txt
    

image-20230514132921031

3.2 将目录所有的文件都添加到暂存区

git add . 

image-20230514133004916

  • 版本库只能跟踪存文本文件的改动,如txt, 对于视频等二进制文件只能跟踪大小改变,内容改变无法跟踪
  • 注意事项
    • word文件是二进制格式,无法进行跟踪

    • windows自带的记事本在每个文件开头添加了0xefbbbf(十六进制)的字符,保存会乱码,避免使用,可以采用vS Code

3.3 添加到暂存区的文件进行提交版本库

git commit -m "提交log"

image-20230514133910780

三、版本控制

1. 查看版本信息

  • 查看git 历史提交日志

    • git log

    • git log --pretty=oneline

      • 不会显示所有信息,只会显示版本号

      • git log --graph

    • 图形化展示

  • 单纯查看工作区的情况

    • git status
      
  • 查看文件修改内容

    • git diff
      
  • 查看工作区文件的内容

    • git cat 文件名
      

2. 管理修改

  • Git的优点:
    • 跟踪的是修改,而不是文件

2.1 提交文件流程

  • 要提交的内容需要添加到暂存区

    • git add 文件名
      
  • 将暂存区的内容提交到版本库

    • git commit -m "提交log"
      
  • 本地文件修改但没有提交到暂存的内容,则不会被提交到版本库

2.2 对比差异

  • git diff 命令 不加参数,只比较比较工作区和暂存区(最后一次add)的区别

    • git diff
      
  • 比较工作区和版本库(最后一次commit)的区别

    • git diff HEAD -- 文件名
      
  • 比较工作区和暂存区

    • git diff 文件名
      
  • 比较暂存区和版本库的区别

    • git diff --cached
      

3. 仓库版本的回退

  • git中的版本关键字

    • 当前版本
      • HEAD
    • 上一个版本
      • HEAD^
    • 上上个版本
      • HEAD^^
  • 回退到上一个版本

    • git reset --hard HEAD^
      
  • 回退到指定 commit id的版本

    • git reset --hard 写差不多5位即可
      
  • 回退后,想回到未来的版本,查看命令历史,可以查看对版本的操作记录,包括被操作版本的版本号

    • git reflog
      
    • 然后根据相应的 commit id 回退的未来版本

3.1 reset 与 revert的区别

  • 例子; 如果已经有A -> B -> C
  • reset 是直接向前回滚,回滚后则后面的版本信息将消失
    • 如 C提交错误的信息,想回滚到B并删除掉C的提交信息,则使用reset
    • 结果:
      • A -> B
  • revert 是往前进,但内容回到了过去的目标版本
    • 如C是正常提交信息,但由于工作原因,需要回退到B的版本内容,将来可能再改为C,则使用revert
    • 结果:
      • A -> B -> C -> B

4. 撤销修改

4.1 撤销最近一次工作区的修改

  • 把file 文件在工作区的修改全部撤销 - 让这个文件回到最近一次git commitgit add时的状态

    • git checkout -- 文件名
      
      //新版本git改版
       git restore
      
    • 情况

      • 情况一:file修改后还没有add 放入暂存区,撤销后就回到跟版本库一模一样的状态
      • 情况二:file已经添加到暂存区,又修改了,撤销后,就会回到添加到暂存区后的状态(最后的修改撤销了)

4.2 撤销暂存区的修改

  • 把暂存区的修改撤销掉,重新放回工作区

    • git reset HEAD 文件名
      
      //新版本git改版
      git restore --staged
      
    • HEAD表示版本库的最新版本

4.3 场景分析

  • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时

    • git checkout
      
  • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改

    • 分两步,第一步用命令git reset HEAD <file>,撤销暂存区的内容,放回到工作区,
    • 第二步按场景1操作

5. 删除文件

  • 将文件从仓库删除
git rm filename
  • 如果对添加到仓库但未提交文件进行删除,会报错

    • image-20230514134014482
  • 正常删除状态

    • image-20230514134227485
  • 然后提交版本库即可

    • image-20230514140006564

5.1 删除文件但保留在目录中(未跟踪状态)

git rm --cache filename

image-20230514140121167

6. 恢复文件

  • 用版本库里的版本替换工作区的版本, 丢弃暂存区该次删除操作,丢失最近一次提交后修改的内容

    • git checkout -- W文件名
      

四、远程仓库

1. 添加远程仓库,同步本地仓库

  • 已经在本地创建了一个Git仓库后,想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。

1.1 GitHub 创建空仓库

  • 可以网页登录github或者通过 Desktop进行创建

1.2 将本地仓库与远程库进行关联

git remote add origin(这是git默认的名字) git@github.com:账户名/仓库名.git

# 如果添加的地址出错了,可以解除本地与远程库的关联
git remote rm origin(库名)
  • origin 是Git默认远程仓库名字,可以重命名

    • git remote rename 旧名字,新名字
      

image-20230526003132276

  • 如果克隆别人的仓库,在此基础上完成代码,推送到自己的仓库,可能会遇上 error: remote origin already exists.的问题

    • 查看远程仓库

      • git remote -v
        
    • 已经关联了仓库,把关联的这个仓库删掉

      • git remote rm origin(库名)
        
    • 再重新关联自己的仓库

1.3 将本地库的内容,推送到远程

  • 在推送前,最好先拉取更新下仓库

    • git pull
  • 将当前分支 master 推送到远程

    • git push origin master
  • 推送其他分支

    • git push origin dev
  • 参数

    • -u
      • 第一次推送 master 分支时,加上 -u 参数,Git不但会把本地的master分支内容推送到远程新的master分支上,还会把远程的分支与本地master关联,以后的推送中或拉去中就可以简化指令
  • 每次本地做了提交之后,推送到远程仓库中

    • git push origin(库名) master
    • 或者简单地就是 git push
  • Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车

五, 分支管理

  • 分支有什么用?
    • 当我们需要开发新功能的时候,如果可以创建一个属于自己的分支并在上面进行自己的开发工作,不会影响到别人的提交,等我们开发完毕后,再一次性合并到原来的分支上

1. 什么是分支

  • 每次提交,都会生成一个提交对象,每个对象都有一个哈希值,Git都把它们串成一条时间线,这条时间线就是一个分支

  • 分支就是一个包含每个提交对象的哈希值的文件,简单来说就是指向提交对象的指针

  • 主分支

    • master(main)
  • 执行当前分支

    • HEAD
  • 查看当前分支

    • git log

      • image-20230525010752703
      • HEAD-> main 表示当前所在的分支
      • origin/main 指定是我们远程仓库的main分支
    • 查看分支列表

      • git branch --list
      • image-20230525010819547

2. 一开始只有一条分支 master(新版本叫main)

image-20230525012728835

3. 新建一个分支

  • Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
# 创建新分支并切换
git checkout -b dev
# 相当于
git branch dev
git checkout dev(新版git checkput 改为 switch)

# 查看当前分支, 列出所有分支,当前分支前面会标一个*号
git branch

# 工作完,切换回到主分支
git switch master

image-20230525010905008

image-20230525012741188

  • 从现在开始,对工作区的修改和提交就是针对dev分支
  • 修改master分支下的binge.txt,然后提交
git commit -am  'create dev and modifile binge.txt'

image-20230525011350655

image-20230525012749655

  • 查看所有分支的提交
    • git log --all / git log --all --graph

image-20230525011803056

  • 切换为master分支可以看到binge.txt文件内容还是原来的内容
    • image-20230525012000545

4. 合并分支

  • 假如我们在dev上的工作完成了,就可以把dev合并到master上。最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:
# 把dev分支的工作成果合并到master分支
git merge dev

image-20230525012521386

image-20230525012801086

  • 合并后binge.txt文件内容发生改变
    • image-20230525012315277

5. 合并后删除分支

# 合并并检查完成后,就可以删除dev分支
git branch -D dev1

# 查看结果
git branch

image-20230525012625852

image-20230525012811021

6. 如何恢复被删的分支

  • git reflog show --date=iso
    • git reflog用来记录你的每一次命令,–date=iso 表示以标准时间显示,(不能用git log相关命令显示从最近到最远的提交日志,因为当分支被删掉就找不到记录)
    • image-20230527000533821
  • git show 分支id 查看提交详情
  • it checkout -b 要恢复的分支名 提交记录id
    • image-20230527000655496

六,冲突与解决冲突

1. 两个子分支都做了修改,都想合并到主分支,产生冲突

1.1 创建并切换到新分支1 dev1,修改binge.txt文件

git switch -c dev1
git add binge.txt 
git commit -m "dev1 commit binge.txt"

image-20230525214535256

1.2 创建并切换到新分支2 dev2,修改binge.txt文件

git switch master
git switch -c dev2
git add binge.txt 
git commit -m "dev2 commit binge.txt"

image-20230525215550439

  • 查看提交log ,按下q键退出查看

    • git log --all
    • image-20230525220410542
  • 以graph形式查看log

    • git log --all --graph
    • image-20230525220432567
  • 合并dev1

    • image-20230525221409349
  • 合并分支dev2时,会因为两个分支同时修改了一个文件导致冲突

    • Automatic merge failed; fix conflicts and then commit the result
    • image-20230525221519543

1.3 解决冲突

  • 查看状态

    • image-20230525221744218
  • 进入文件,手动解决冲突

    • image-20230525225431771
  • 只能保留冲突两者的其中一个部分,保存退出

    • image-20230525225649118
  • 提交

    • image-20230525230059695
  • 查看合并的log

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uiUNcHYt-1685264358904)(D:\typoraImages\image-20230525230203206.png)]

1.4 向远程库推送

  • 推送master分支
    • 一般推送
      • git push origin master
    • 精简推送
      • git push -u origin master
      • 加上 - u参数,下次只需要 git push就可以提交

image-20230525230904454

  • 也可以推送其他的分支,如dev1, dev2

2. 主分支和子分支都做了修改,子分支想直接合并到主分支,产生冲突

  • 情景
    • 开发过程中,如果需要添加新功能,但不想影响主分支,新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支

image-20230526004633722

解决冲突类似上一种情况

  • 根据Git提示的冲突文件,手动修改冲突,改为我们希望的内容,再提交
  • 最后删除新分支
  • 可以通过命令查看分支树
    • git log -graph

image-20230526004716781

七、分支管理策略

  • 默认情况下,Git使用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息

1. 使用普通模式

  • Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息

  • 合并分支

    • git merge --no-ff -m "merge with no-ff" dev
      
    • –no-ff参数,表示禁用Fast forward

image-20230526005532702

2. Fast forward模式

  • 分支管理原则
    • master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活
    • 每个人干活都在dev分支上,开发完成后再合并到master分支

image-20230526005727142

八、stash 储藏功能

  • 当前正在dev上进行的工作做了一半,还没有提交,但需要新建一个临时bug分支去修复bug,修复后,合并分支,然后将临时分支删除。

  • stash

    • 可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
    • stash后,切换到要进行bug修复的分支,然后建立临时分支,修复完成后并完成合并,最后删除临时分支
    • git stash list 查看工作现场列表
    • git stash apply 恢复现场
    • git stash drop 删除现场
    • 恢复现场时删除stash内容
      • git stash pop
  • 如果所修复bug也存在于dev分支,则可以将所修复bug的提交复制到dev分支

    • git cherry-pick 提交的版本号

1、实例:功能开发到一半,突然有一个新bug需要紧急修改

  • master分支,修改binge.txt,修改了一半,然后需要切换分支修bug

    • image-20230526232554524
  • 要切换dev1分支,但因为当前master分支已经脏了,提示要么先提交,要么使用stash命令进行存储

    • image-20230526235804647
  • git stash(git stash push) 存储后,master重新变成干净的目录

    • image-20230527000921087
  • 切换dev1分支,修改完bug后,再切换回master,就可以使用git stash apply 恢复现场

    • image-20230527001218149

2. 可以多次 git stash

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qIVaDdbK-1685264358906)(D:\typoraImages\image-20230527002725667.png)]

  • git stash list 查看stash 记录,0表示最近一次的stash

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nqOd9Cl4-1685264358906)(D:\typoraImages\image-20230527002818188.png)]
  • 恢复到指定的stash 记录(只能在干净的目录进行恢复stash),但不会删除stash 记录

    • git stash apply stash#{stash的id}
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HtfTc6va-1685264358906)(D:\typoraImages\image-20230527003322574.png)]
  • git stash pop

    • 恢复最后一个stash, 恢复现场时删除stash内容
  • git stash drop

    • 单纯删除现场

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

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

相关文章

多线程 -- Thread类的基本用法

本篇重点 什么是变量捕获?? 有关线程的操作 线程创建线程中断线程等待线程休眠获取线程实例目录 1. 线程创建2. 线程中断变量捕获 线程的六种状态NEW 状态TERMNATED 状态RUNNABLE 就绪状态TIMED_WAITING 状态 1. 线程创建 关于线程的创建看上篇博客, 里面为线程的创建提供…

数据库事务到底是什么?

目录 场景&#xff08;两个用户之间进行转账操作&#xff09;&#xff1a; 需要的操作步骤&#xff1a; 事务 事务的四大特性&#xff1a; 一、原子性 &#xff08;1&#xff09;什么是回滚操作 &#xff08;2&#xff09;数据库恢复操作&#xff0c;如何知道数据恢复如初…

C++ Stack&queue&deque

C Stack&#xff06;queue&#xff06;deque &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容主要讲解了栈和…

如何在华为OD机试中获得满分?Java实现【字符串通配符】一文详解!

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Java华为OD机试真题&#xff08;2022&2023) 文章目录 1、题目描述2、输入描述3、输出描述…

Rust 笔记:Rust 语言中应用正则表达式

Rust 笔记 Rust 语言中应用正则表达式 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263?spm1001.2101.3001.5343 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/…

【Linux】线程详解之线程互斥与同步

文章目录 Linux线程互斥一、进程线程间的互斥相关概念1.临界资源和临界区2.互斥和原子性 二、互斥量mutex1.抢票程序是否引入互斥量现象观察2.抢票程序原理分析3.互斥量的接口4. 加锁后的程序5.互斥量原理探究 可重入VS线程安全一、概念1.线程安全2.重入 二、常见的线程不安全的…

【P37】JMeter 仅一次控制器(Once Only Controller)

文章目录 一、仅一次控制器&#xff08;Once Only Controller&#xff09;参数说明二、测试计划设计2.1、测试计划一2.1、测试计划二 一、仅一次控制器&#xff08;Once Only Controller&#xff09;参数说明 可以让控制器内部的逻辑只执行一次&#xff1b;单次的范围是针对某…

Spring Authorization Server 系列(一)环境搭建

Spring Authorization Server 中的scope参数解析 前提依赖版本问题确定Spring Boot 版本确定 Spring Authorization Server 版本最终的依赖 第一个 Spring Authorization Server Demo 前提 由于 Spring 最新的 OAuth2 解决方案 已经由 Spring Security 下的 OAuth2 模块独立出…

从零开始学习JavaScript:轻松掌握编程语言的核心技能①

从零开始学习JavaScript&#xff1a;轻松掌握编程语言的核心技能 一&#xff0c;JavaScript 简介为什么学习 JavaScript?JavaScript 用法 二&#xff0c;JavaScript 输出JavaScript 显示数据JavaScript&#xff1a;直接写入 HTML 输出流 三&#xff0c;JavaScript 语法JavaScr…

VS2022发布独立部署的.net程序

.net core支持依赖框架部署和独立部署两种方式&#xff0c;之前学习时是在VSCode中使用dotnet命令发布的。但是在VS2022中却不知道该如何设置。以获取PDF文件使用字体的项目为例&#xff0c;VS2022中默认编译的是依赖框架部署方式&#xff08;编译的结果如下图所示&#xff09;…

Android进阶 View事件体系(三):典型的滑动冲突情况和解决策略

Android进阶 View事件体系&#xff08;三&#xff09;&#xff1a;典型的滑动冲突情况和解决策略 内容概要 本篇文章为总结View事件体系的第三篇文章&#xff0c;前两篇文章的在这里&#xff1a; Android进阶 View事件体系&#xff08;一&#xff09;&#xff1a;概要介绍和实…

Oracle——数据操纵DML(一)

STU1 1、不指定字段的整行插入 在STU1中新增一名同学的基本信息&#xff0c;SQL如下&#xff1a; INSERT INTO test.stu1 VALUES(0001,牛牛,男,24,to_date(1988-05-25,YYYY-MM-DD),12外语)格式如下&#xff1a; INSERT INTO 表名 VALUES(值1,值2,...,值n)对于CHAR或VARCHAR等…

sql-labs SQL注入平台——第二关Less-2 GET - Error based - Intiger based (基于错误的GET整型注入)

Less-2 GET - Error based - Intiger based (基于错误的GET整型注入) 一、先确认漏洞是否存在 &#xff08;1&#xff09;查询 id1返回查询结果正常 &#xff08;2&#xff09;查询 id1’返回查询结果报错&#xff0c;可能存在SQL注入 &#xff08;3&#xff09;查询 id1 …

路径规划算法:基于帝国主义竞争优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于帝国主义竞争优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于帝国主义竞争优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用…

Dubbo环境搭建

1.搭建zookeeper注册中心环境 zookeeper下载地址 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ptMw7rb-1685261782669)(b894c0cbb6501ca97145d3b09685ae8f.png)] 在bin文件下&#xff0c;启动zkServer.cmd会有报错&#xff0c;处理需要在condi…

你所不知道的 数据在内存中储存 的来龙去脉

那么好了好了&#xff0c;宝子们&#xff0c;今天给大家介绍一下 “数据在内存中储存” 的来龙去脉&#xff0c;来吧&#xff0c;开始整活&#xff01;⛳️ 一、数据类型的介绍 &#xff08;1&#xff09;整型和浮点型&#xff1a; &#xff08;2&#xff09;其他类型…

Linux——使用命令行参数管理环境变量

目录 使用命令行参数获取用户在DOS命令行输入的指令&#xff1a; 方法&#xff1a;代码如下&#xff1a; 使用命令行参数获取并打印部分或者整体环境变量的方法&#xff1a; 方法1&#xff1a; 运行结果&#xff1a; 方法2&#xff1a;使用外部链接environ: 使用命令行参数…

如何开发背包系统?

UE5 插件开发指南 前言0 背包数据结构1 背包管理组件2 背包UI显示前言 相信大家对于背包系统并不陌生,谁还没有玩过几款游戏呢?游戏中的背包都是大同小异的,朴素的功能就是存放我们获取到的物品,高级一点就是要有物品分类,便于玩家刷选背包中的物品,能够显示玩家拥有的货…

2023 牛津大学博士后申请指南

牛津大学是全球著名的高等教育机构&#xff0c;其博士后项目备受瞩目。为了帮助申请者更好地了解牛津大学博士后申请流程&#xff0c;本文将介绍该校博士后申请指南的相关内容。一、申请条件首先&#xff0c;申请者必须已经获得博士学位或即将完成博士学位&#xff0c;并具有相…

《数据库应用系统实践》------ 报刊销售系统

系列文章 《数据库应用系统实践》------ 报刊销售系统 文章目录 系列文章一、需求分析1、系统背景2、 系统功能结构&#xff08;需包含功能结构框图和模块说明&#xff09;3&#xff0e;系统功能简介 二、概念模型设计1&#xff0e;基本要素&#xff08;符号介绍说明&#xff…