Java阶段五Day03

news/2024/10/31 3:27:53/

Java阶段五Day03

文章目录

  • Java阶段五Day03
    • 回顾git命令
    • Git远程仓库
      • 远程仓库概念
      • 远程仓库分支操作
      • 分支管理策略
      • 单体架构(微服务理论基础)
    • 附录 补充内容
      • idea运行多个springboot-web应用

回顾git命令

本地版本控制

  • git init
  • git add
  • git commit
  • git log
  • git status
  • git tag
  • git reflog
  • git reset

分支管理

  • git branch
  • git branch b1
  • git checkout b1
  • git merge b1
  • git rebase b1

Git远程仓库

远程仓库概念

git 分布式的版本控制软件,同时支持去中心化

为了方便版本的交换,通常会使用一个中心服务器,24小时连续运行,提供版本控制服务
这就有两种做法:
自己搭建中心服务器(公司内部搭建gitlab)
使用类似GitHub的代码托管网站(国内时gitee)       
目前我们更多使用代码托管的方式进行开发工作

登录gitee 如何将本地代码,推送到远程,关联到远程.

远程仓库分支操作

  • 在托管平台准备一个空仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QJUlHX5E-1689052681202)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711092402307.png)]

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xQrSLczA-1689052681203)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711092832521.png)]

  • 在当前本地项目中添加远程仓库关联

使用git remote命令来添加仓库

git remote -v

不携带参数执行,是查询本地仓库关联的远程仓库,可以关联很多个.

使用add子命令,来添加你的目标远程仓库

git remote add {自定义仓库名称} {仓库地址*.git}
git remote add gitee-repo https://gitee.com/xiaolaoshi202
1/git-demo.git
  • push 推送

和远程仓库关联之后,可以通过push推送. 可以先确保本地有提交的数据.

git push {仓库名称} {本地分支名称}

如果是第一次push或者fetch,本地要填写远程仓库用户名密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O2l0QRRQ-1689052681204)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711093821111.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OnjrzQ6B-1689052681204)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711093913362.png)]

  • gitee添加团队成员

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CKtXn3pO-1689052681204)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711094656268.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vsf9ixsR-1689052681204)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711094851590.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EykybS61-1689052681205)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711095142990.png)]

  • 克隆远程仓库项目

团队其他成员,可以通过连接远程仓库,进行项目克隆

git clone {远程仓库地址} 目录名称
git clone https://gitee.com/xiaolaoshi2021/git-demo.git ./git-demo-b
  • 远程分支概念

刚刚克隆的项目,只有默认分支(master),同步到了本地分支

在当前项目由于关联的远程托管中心,分支分成了2批,第一批就是本地分支

第二批就是远程分支

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LZhQwwfT-1689052681205)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711102025942.png)]

可以像操作本地分支一样,部分命令可以操作远程分支.

  • 查看并切换分支
git branch -a

查看当前仓库中所有的分支信息,包括远程分支.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PMg4rgUp-1689052681206)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711102211697.png)]

注意:永远不可能在本地仓库对远程remotes分支进行修改.因为在本地看到的远程分支只是元数据(描述远程分支信息的数据,描述数据的数据).

可以执行分支的切换命令

git checkout {分支名称}

这个命令缺少必要选项,导致切换远程分支,没有创建本地分支.

  1. 查询对应选项,完成命令操作
  2. 使用idea的按钮切换分支checkout

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mMe1rEoJ-1689052681206)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711103151570.png)]

注意: 一般情况下,多分支开发时,个人只关心自己的分支,不关心其他人分支.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TjBO1fF1-1689052681206)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711103425364.png)]

  • 多人协作连接远程仓库开发-对同一个分支并行开发

特点:和本地同一个分支并行开发一样的情况.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2BhGb3HB-1689052681207)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711104355550.png)]

  • 处理同一个分支开发的push冲突

pullpush,绝大部分问题,都不存在了,pull的同时,自动进行合并

有可能在pull的时候,处理冲突,没有冲突,自动合并

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fj4pHgA8-1689052681207)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711104758399.png)]

多人同时开发一个分支不合理,会造成推送 下来的不便

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xmsBAS8x-1689052681207)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711105229558.png)]

  • 如果pull过程有文件冲突–同一个分支多人开发

只要在pull的时候有文件的冲突问题,和本地分支合并 文件冲突解决方法是一样的.

accept yours 保留本地分支版本文件

accept theris 保留远程其他分支版本文件

merge 手动处理冲突 出现以下画面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tXwHGCQ9-1689052681208)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711111655264.png)]

分支管理策略

企业开发过程中,总是满足一种比较规范的分支管理策略(所有分支操作,包括远程,都已经在上述的命令,案例中包括)

  • gitflow: 最老版本,最规范的分支使用策略,满足版本发布特点
  • githubflow: 满足持续发布
  • gitlabflow: 既能满足版本发布,又能满足持续发布

版本发布: 游戏 v1.0.1 v1.1.0

持续发布: web网站

核心都是分开开发,定义分支的意义(gitflow定义分支的使用规范最全)

  1. 永久分支:

    1. master: 保管的永远是稳定代码版本(几乎没有bug),什么时候代码测试的差不多了,才能合并到master
    2. develop: 开发分支,所有功能推进都基于develop进行
  2. 临时分支

    1. eature-XX: 新功能分支,来自于develop,XX可以是人名,可以是功能名称,不同的开发人员开发维护不同feature分支,最终合并到develop,删除
    2. release分支: 保护分支,来自于develop,目的是测试develop不影响develop开发,如果测试有问题,修改bug,合并到deveopmaster,在master做版本最终上线(合并到master意味着代码要上线),归宿一定是master,可能也会合并dev
    3. hot-fix: 热点修复,解决线上bug,来自于master,归宿一定是masterdevelop

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a8ovcHL9-1689052681209)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711114748982.png)]

一版情况下,根据公司的规模,仿照这个gitflow规范,定义公司分支的管理

大部分情况下:

  1. 直接发布develop
  2. 新功能也是基于·develop·实现的,不会使用master

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AAPV2lhW-1689052681209)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711115353058.png)]

单体架构(微服务理论基础)

  • 什么叫做单体架构

开发一个web应用,将所有接口功能,都集中管理开发在一个项目中,这种项目叫做单体架构

  • 有什么优点
    • 结构简单,开发成本低
    • 部署运维成本低
  • 有什么缺点
    • 如果功能是不断扩展,项目代码,功能代码非常臃肿
    • 并发的木桶原则问题

随着业务增长,功能一定是在不断增长的。为了降低一个系统的业务成本,提供灵活可扩展的结构。单体架构,不在适用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4zTxCU8o-1689070884162)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711163350744.png)]

  • 纵向拆分

按照业务功能,将单体架构中的功能独立拆分开,单独部署,单独开发,单独维护,每一个拆分出来的项目相互不影响——纵向拆分

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PEnUbvRB-1689070884163)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711164130286.png)]

纵向拆分带来的最直接的一个问题——业务分布式系统,考虑负责的分布式环境下的各种问题,比如功能调用问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y1ALxrBg-1689070884164)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711164427236.png)]

假设使用socket进行通信代码编写,Aservice远程通信调用Bservice。Aservice,建立客户端连接socket,Bservice建立SocketServer

除了代码编写成本过高,目标ip:port如何获取.

实现上述问题的最终落地解决——微服务

附录 补充内容

idea运行多个springboot-web应用

  • 启动一个springboot应用
  • 修改启动配置项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ubd90c3I-1689070884165)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711155640691.png)]

  • 修改覆盖源代码中的端口号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1BsE9dMI-1689070884165)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711155954324.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9K73aqRA-1689070884166)(E:/TeduWork/notes-2303/%25E8%25AF%25BE%25E5%25A0%2582%25E7%25AC%2594%25E8%25AE%25B0/Day03/assets/image-20230711160308112.png)]


http://www.ppmy.cn/news/907131.html

相关文章

智能家居创意DIY-智能触摸面板开关

触摸开关,即通过触摸方式控制的墙壁开关,其感官场景如同我们的触屏手机,只需手指轻轻一点即可达到控制电器的目的,随着人们生活品质的提高,触摸开关将逐渐将换代传统机械按键开关。 触摸开关控制原理 触摸开关我们把…

汽车面板开关的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

报告页数: 150 图表数: 100 报告价格:16800 本文研究全球与中国市场汽车面板开关的发展现状及未来发展趋势,分别从生产和消费的角度分析汽车面板开关的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格…

Unity程序联动rs485可编程开关

开发工具:Unity2018.3.7 需要设备:rs485可编程开关,rs485信号转rs232信号转换头,usb串口线,12伏电源 编程开关类似下面: 转换器和串口线: 最近公司许多项目用到了串口通讯联动,比如…

制作一个homeassistant开关

制作一个homeassistant开关 在智能家居时代,如果所有的设备都用手机来控制,也是挺麻烦的一件事情,毕竟最常用的控制方式是实体开关。因为实体开关来的更加的直接,直观,比如,当我们进入到一个房间&#xff0…

智能家居创意DIY之智能触摸面板开关

触摸开关,即通过触摸方式控制的墙壁开关,其感官场景如同我们的触屏手机,只需手指轻轻一点即可达到控制电器的目的,随着人们生活品质的提高,触摸开关将逐渐将换代传统机械按键开关。 触摸开关控制原理 触摸开关我们把…

年轻人的颜值担当,当下正流行的开关面板设计,你pick哪一款?

在颜值即正义的时代 越来越多的年轻人选择产品时 除了关注产品的功能外 也愈加愿意为产品的颜值买单 近年来,鸿雁从大自然和生活中汲取灵感 以年轻、新鲜、现代的设计风格 赋予开关面板更有格调的外形 引领了墙面上的家居美学 下面,小雁带大家一起…

手机控制智能开关java,一键控制所有电灯的智能开关 Switchmate

科幻电影中未来感十足的智能居家,随着科技的进步正在慢慢的实现当中,而看来第一个要迈入智能化的家电将会是我们每天必定要使用到的开关,美国新创设计团队研发出一款智能开关《Switchmate》,只要将它安装在原有的电灯开关上后&…

启明智显分享|基于ESP32-S3的低成本86智能开关面板\温控器解决方案

提示:启明智显基于乐鑫ESP32-S3与国产芯高效开发平台8ms(8ms.xyz)设计开发的一款可快速开发86智能开关、温控器的串口屏已批量应用于86智能开关\温控器解决方案 86智能开关\温控器解决方案是启明智显基于乐鑫ESP32-S3与国产芯高效开发平台8ms(8ms.xyz)设计开发的一款…