springboot框架项目实践应用二十一(git实战)

1.引言

日常开发中,git是我们用的比较多的版本控制工具,相比较svn,很多公司都会更加钟情于git一些。我们公司svn、git都有在用,文档资料通过svn来管理,git则用来管理源代码。

但是在项目中,看到很多小伙伴在使用git的时候,不够熟系或者说不够专业,毕竟日常开发中大多数时候,都只是拉取、提交、推送几个简单操作就完事了,且都还借助了ide工具来操作,比如idea简直就是神器对吧。

那么今天这篇文章,我将给你分享通过git管理项目的一个相对完整的流程,主要涉及这么一些内容

  • 如何建立远程仓库,比如说码云、github、甚至是公司内部搭建的gitlab服务器
  • 如何创建项目,完成git初始化
  • git常用命令,比如说:添加、提交、查看状态、查看分支、开新分支等
  • 本地项目,如何关联、并推送到远程仓库
  • git最佳实践,比如说分支开发、主干发布等

2.案例

2.1.git常用命令

shell 复制代码
#1.初始化
通常在根目录下,执行:【git init】,完成项目的git初始化
#2.添加
当在项目中,添加新文件后,执行:【git add .】,完成新文件git添加
#3.提交
当在项目中,更新内容后,执行:【git commit -m'log content'】,完成git提交,需要注意此时的提交,是提交到本地的暂存区,内容变化还未同步到远程,这是与svn的提交不一样的地方
#4.查看状态
如果想要查看项目的git状态,执行:【git status】
#5.查看分支
查看本地分支,执行:【git branch】
查看远程分支,执行:【git branch -r】
#6.开新分支
开一个新分支,比如说从master分支,开分支v1.0,执行:【git checkout -b v1.0 origin/master】
#7.克隆、拉取
从远程仓库克隆代码,执行:【git clone https://xxx/xxx.git】
从远程仓库拉取最新代码,执行:【git pull】
#8.推送
如果是本地项目,第一次推送,需要与远程仓库建立连接,执行:【git remote add origin https://xxx/xxx.git】
如果是本地项目,第一次推送,与远程仓库建立连接后,第一次推送执行:
【git pull】--->优先从远程仓库,做一次拉取
【git push -u -f origin/master】---> -f参数,表示强制推送,覆盖远程仓库

如果不是第一次推送,执行:【git push】

2.2.创建远程仓库

复习了解了git的常用命令,我们借助码云做一个相对完整的案例演示。首先我们建立一个远程仓库:algorithm,用于分享数据结构与算法,我会把数据结构与算法系列文章的源码放到这个仓库中

2.3.准备项目,执行git初始化

我们进入项目:data-struct-pro根目录,创建两个文件,分别是

  • README.md,用于描述项目详细信息
  • .gitignore,用于描述git忽略文件信息

2.3.1.README.md

shell 复制代码
数据结构与算法知识汇聚

2.3.2.gitignore

shell 复制代码
#忽略class文件
*.class
#忽略打包文件
*.war
*.ear
#忽略kdiff3对比文件
*.orig
#忽略maven文件
target/
#忽略eclipse文件
.settings/
.project
.classpath
#忽略idea文件
.idea/
/idea/
*.ipr
*.iml
*.iws
#忽略临时文件
*.log
*.cache
*.diff
*.patch
*.tmp
#忽略系统文件
.DS_Store
Thumbs.db

2.3.3.执行git初始化

git初始化前

git初始化后

2.4.添加、提交本地项目

完成初始化后,项目已经通过git管理起来,我们需要将项目内容添加、提交到git本地暂存区中,具体操作

  • 查看当前git状态信息,执行:【git status】
  • 添加项目内容,执行:【git add .】
  • 提交项目内容,执行:【git commit -m'algorithm project init'】

2.5.将本地项目,推送到远程仓库

在本地项目git初始化后,我们需要把项目进一步推送到远程仓库中,具体步骤

  • 建立远程仓库连接,执行:【git remote add origin gitee.com/yanghouhua/...
  • 拉取远程仓库初始化信息,执行:【git pull】
  • 推送本地项目到远程仓库,执行:【git push -u -f origin master】

图一

图二(推送的时候,需要用户验证,输入远程仓库上的用户名、密码即可)

图三(推送成功后,远程仓库上已经有我们的项目代码了)

2.6.git最佳实践

到这一步,我们已经把本地项目,推送到远程仓库管理起来。这个时候,项目组的小伙伴就都可以从远程仓库,拉取项目的代码到本地,愉快的进行日常开发了。

当然这个时候,我们需要注意一些最佳实践,下面我将给你分享

  • 分支开发,主干发布
  • git项目分支管理

2.6.1.git项目分支管理

这里,我将我们项目组实施的分支管理实践分享给你,你需要注意,每个项目组的实践方式一定会有差异,都需要参考项目组自身的需要来调整,因此我们关注到每个分支的含义就可以了

  • master分支:主干分支,在我们项目组中,master分支用于线上备份,即在每次上线发布后,直接从release分支合并而来
  • release分支:发布分支,在我们项目组中,该分支用于上线发布
  • test分支:测试分支,在我们项目组中,该分支用于测试
  • develop分支:开发分支,在我们项目组中,该分支用于新需求,新功能开发。每个新需求新功能,我们会从release分支作为起点,开一个develop分支,比如说:develop-xxx-20210523
  • hotfix分支:bug修复分支,在我们项目组中,该分支用于线上bug修复。针对线上bug,我们会从release分支作为起点,开一个hotfix分支,比如说:hotfix-xxx-20210523

看到这里,可能有朋友会问了,那么你们的分支之间是怎么流转,保障代码同步的呢?我们是这么做的

  • 不管是新需求,还是线上bug修复,我们都会以release分支作为起点,开新的分支
  • 当需求开发完成,或者bug修复完成,我们会优先将代码合并到test分支,进行测试
  • 测试通过后,我们会将需求分支、bug修复分支代码合并到release分支,进行预生产发布
  • 预生产环境测试通过后,直接推送发布到生产环境
  • 整个项目上线发布完成,将release分支代码,合并到master分支,实现分支代码的同步

2.6.2.分支开发,主干发布

关于整个分支代码流转,我就不具体演示了,毕竟每个团队都会有自己的规范。在这里最后,我们分享一下如何开新分支、以及如何在分支之间切换

  • 创建新分支,执行:【git checkout -b v1.0 origin/master】
  • 推送v1.0分支到远程仓库,执行:【git push origin HEAD -u】
  • 切换分支,执行:【git checkout master】

图一

图二

相关推荐
不吃香菜学java15 分钟前
Redis的java客户端
java·开发语言·spring boot·redis·缓存
码事漫谈36 分钟前
大模型输出的“隐性结构塌缩”问题及对策
前端·后端
小江的记录本1 小时前
【网络安全】《网络安全常见攻击与防御》(附:《六大攻击核心特性横向对比表》)
java·网络·人工智能·后端·python·安全·web安全
努力的小雨1 小时前
龙虾量化实战法(QClaw)
后端
橙露2 小时前
SpringBoot 整合 MinIO:分布式文件存储上传下载
spring boot·分布式·后端
小眼哥2 小时前
SpringBoot整合Vue代码生成exe运行程序以及windows安装包
vue.js·windows·spring boot
2401_895521343 小时前
【Spring Security系列】Spring Security 过滤器详解与基于JDBC的认证实现
java·后端·spring
小码哥_常4 小时前
大文件上传不再卡顿:Spring Boot 分片上传、断点续传与进度条实现全解析
后端
电化学仪器白超4 小时前
小乌龟Git全程图形化操作指南:嵌入式本地版本管理与Gitee私有云备份实战
git·python·单片机·嵌入式硬件·物联网·gitee·自动化
_Evan_Yao4 小时前
RAG中的“Chunk”艺术:我试过10种切分策略后总结的结论
java·人工智能·后端·python·软件工程