JAVA八股文面试必会-基础篇-1.6 开发工具

1.6.1 Linux常用命令

1.6.2 Docker常用命令

1.6.3 你们代码是如何管理的

在我们项目开发过程中, 我们使用GIT进行项目代码管理 , 主要使用的是阿里云效的GIT仓库服务/自己搭建的Gitlab服务

阿里云效的GIT仓库服务自己搭建的Gitlab服务二选其一

1.6.4 你常用的Git命令有哪些

  1. git clone : 从远程仓库克隆代码仓库
  2. git add  : 添加本地文件进暂存区
  3. git commit : 提交本地代码到本地仓库
  4. git branch : 查看本地分支
  5. git branch 分支名称 : 创建分支
  6. git checkout 分支名称 : 切换到指定分支
  7. git push origin 分支名称 : 推送本地仓库到远程
  8. git pull origin 分支名称 : 从远程分支拉取仓库 , 自动合并
  9. git fetch origin 分支名称 : 从远程抓取代码 , 不合并
  10. git status  : 查看本地仓库状态
  11. git log : 查看本地仓库提交日志
  12. git tag 标签名称 : 创建tag
  13. git diff 工作区与暂存区的差异
  14. git reset HEAD^ 恢复成上次提交的版本
  15. git reset –hard 版本号
  • –soft:只是改变HEAD指针指向,缓存区和工作区不变;
  • –mixed:修改HEAD指针指向,暂存区内容丢失,工作区不变;
  • –hard:修改HEAD指针指向,暂存区内容丢失,工作区恢复以前状态;
  1. git revert HEAD # 撤销最近的一个提交
  2. git revert 版本号 # 撤销某次commit

1.6.5 git pull , git merge , git fetch命令的区别是什么 ?

git clone:是在本地没有版本库的情况下,从远程仓库克隆一份到本地,是一个本地版本库从无到有的过程

git pull:是在本地仓库已经存在的情况下,将远程最新的commits抓取并合并到本地版本库的过程

git fetch: 从远程版本库抓取最新的commits,不会进行合并

git merge:分支合并

1.6.6 你们项目开发过程中分支是怎么管理的 ?

我们项目开发过程中主要包括六种类型的分支

  1. master分支 : 存放的是随时可供在生产环境中部署的稳定版本代码 , 一般不会轻易修改
  2. develop分支 : 开发分支 , 有新版本的功能需要开发的时候会创建develop分支
  3. feature分支 : 如有几个同事同时开发,需要分割成几个小功能,每个人都需要从develop中拉出一个feature分支,但是每个feature颗粒要尽量小,因为它需要我们能尽早merge回develop分支,否则冲突解决起来就没完没了
  4. release分支 : 新版本开发完毕之后 , 即将发布上线, 会从develop分支上创建release分支  , 如果代码有缺陷可以直接在release分支上进行修复 , release分支确定之后会将代码合并到master分支 , 命名一般为 release/版本号
  5. bugfix分支 : 软件发布以后,难免会出现bug。这时就需要从master或者release分支创建一个bug分支,进行bug修补 , 修复完毕后合并到develop分支/master分支和release分支
  6. hotfix分支 : 线上紧急bug修复 , 修复完毕之后合并到master

1.6.7 在你们开发过程中遇到冲突如何解决 ?

在开发的过程中如果两个开发者分别在本地进行代码开发, 开发完毕后提交代码到本地仓库, 如果这两个开发者对同一个或者多个文件进行了修改,  那么后提交代码的开发者则提交不成功 , 会报代码冲突错误

出现冲突之后 , 代码推送就不会成功, 这个时候需要执行git pull命令从远程拉取最新代码, 拉取之后通过git status命令查看冲突的文件 , 然后通过开发工具打开冲突文件 , 对文件冲突进行解决 , 文件中会明确的表名冲突的位置 , 以及本地代码和远程代码的最新内容 , 如果自己能确定如何修改就自己该就行了 , 如果不确定 , 可以通过git log指令查看该版本是谁提交的 , 找到同时讨论看如何调整代码 , 代码调整完毕之后通过git add命令, 标记冲突已解决,  然后正常提交 , 推送即可

1.6.8 什么时候应使用 git stash

当我们正在 feature 分支上开发新功能。这时,生产环境上出现了一个 bug 需要紧急修复,这个时候我们的代码还没开发完,不想提交 , 这个时候可以用 git stash 命令先把工作区已经修改的文件暂存起来,然后切换到 bugfix 分支上进行 bug 的修复,修复完成后,切换回 feature 分支,从堆栈中恢复刚刚保存的内容

在切换之前需要存储一下当前分支的修改

git stash save "message"  

message 是执行存储时的备注

若在这个主分支上修复bug完毕,回到feature时

git stash pop // 应用最近一次暂存的修改,并删除暂存的记录

1.6.9 使用Maven遇到依赖冲突如何解决

依赖冲突是我们在开发中经常会遇到的问题 , 遇到冲突之后我们可以通过如下手段进行解决 :

方式一 : 使用<exclusions>排除依赖

<!--seata-->
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
  <exclusions>
    <!--版本较低,1.3.0,因此排除-->
    <exclusion>
      <artifactId>seata-spring-boot-starter</artifactId>
      <groupId>io.seata</groupId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>io.seata</groupId>
  <artifactId>seata-spring-boot-starter</artifactId>
  <!--seata starter 采用1.4.2版本-->
  <version>${seata.version}</version>
</dependency>

方式二 : 使用<dependencyManagement>提前设置依赖版本(推荐使用)

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>io.seata</groupId>
      <artifactId>seata-spring-boot-starter</artifactId>
      <!--seata starter 采用1.4.2版本-->
      <version>${seata.version}</version>
    </dependency>
  </dependencies>
</dependencyManagement>

1.6.10 Maven的生命周期包括哪些阶段

Maven的生命周期主要包括清理(clean)验证(validate )编译(compile)测试(test)打包(package)安装(install)部署(deploy)站点生成(site)等步骤

在执行一个maven命令的时候, 前面的声明周期也会执行一遍

例如 : 我们在执行安装命令的时候 , 会先执行编译,测试,打包之后再执行安装

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉迪恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值