Java阶段五Day03

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.hqwc.cn/news/20922.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打印机常见故障解决参考方法

1、首先检查打印机电源线连接是否可靠或电源指示灯是否点亮,然后再次打印文件,仍不能打印,请看下一步。 2、检查打印机与计算机之间的信号传输线是否可靠连接,检查并重新连接,如果打印机仍不能打印,请看下一…

FFmpeg、x264以及fdk-aac 编译整合

文章目录 编译 fdk-aac编译 x264合并裁剪AS配置 接上文 FFMPEG 编译流程(极客版) 编译 fdk-aac libfdk-aac version:0.1.5 下载 wget http://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.5.tar.gz#!/bin/bash NDK/home/maqi/Desktop/android-ndk-r…

使用leaflet在html中加载天地图且去掉左上角的缩放图标以及右下角的logo

前言 我们这一节使用轻量化的javascript库leaflet来实现在html中加载天地图,实现类似高德地图、百度地图的效果。 效果图如下: 话不多说,进入主题!! 一、注册开发者权限 我们需要在天地图平台注册一个账号&#xff0…

STM32 Proteus仿真双路0-20V直流电压表TM1637数码管-0061

STM32 Proteus仿真双路0-20V直流电压表TM1637数码管-0061 Proteus仿真小实验: STM32 Proteus仿真双路0-20V直流电压表TM1637数码管-0061 功能: 硬件组成:STM32F103R6单片机 TM1637 4位数码管驱动电路2路0~20V电压测量模块2个电位器输出0-…

C++数据结构笔记(9)树与二叉树的基本概念

1.只有一个结点也可以称为树,只不过没有叶子结点;也可以有0个结点,称为空树。 2.树具有递归性,树中还有树 3.结点的度:结点所拥有的子树的个数 4.树的高度:树的子树的最高层数 5.树的广义表示法&#x…

离线环境下安装微软Visual Studio 2022 生成工具

1. 前言 最近,在学习cython的时候,需要安装windows下的C/C编译、链接工具。开始觉得传统的msvc太大了,想要尝试Mingw,但是都是编译错误。无奈之下,还是要安装msvc。 微软提供了Visual Studio 2022 Build Tools &…

Redis_安装配置(2)

目录 一、安装redis 1、安装gcc依赖 2、下载并解压安装包 3、编译 4、安装 5、设置全局命令 二、启动redis 1、前台启动 2、后台启动 2.1 修改redis.conf文件 2.2 使用指定配置启动redis 2.3 kill redis的进程 3、开机启动 三、配置redis 远程访问设置 设置密码…

华为开发者大会2023(Cloud)之旅

【摘要】 金鱼哥畅游记:华为开发者大会2023(Cloud) 2023年7月7日华为开发者大会2023(Cloud)在广东东莞正式揭开帷幕,金鱼哥很庆幸能有机会参加此次盛大聚会,看到众开发者共聚一堂,在…

如何随机切换代理IP以避免被封禁?

在网络爬虫和数据抓取的领域,使用代理IP技术是非常常见的做法。使用代理IP可以有效地绕过网站的访问限制,提高访问速度和稳定性。然而,如果我们在访问网站时只使用一个代理IP,那么可能会被网站封禁,从而导致访问失败。…

深入解析Android Lifecycle;从基本使用到源码实现,全面掌握生命周期管理

Lifecycle 是 Android Jetpack 中的一个组件,用于管理 Android 应用组件(如 Activity 和 Fragment)的生命周期。通过使用 Lifecycle,开发者可以更容易地管理组件的生命周期并执行相关的操作。 Lifecycle 提供了一组生命周期事件&…

数据结构(王道)——顺序表的基本操作(插入、删除)

顺序表之实现插入: 插入的基础实现: 更加有健壮性的插入 插入实现的时间复杂度分析: 顺序表之实现删除: 删除的实现 删除实现的时间复杂度分析: 总结:

列表定义状态比较不错的UI写法

<el-table-columnprop"status"label"状态"align"left":formatter"formatTd" ><template slot-scope"scope"><span class"grayStatus" v-if"scope.row.status 1">未开始</span>…