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】

图一

图二

相关推荐
Xu_youyaxianshen43 分钟前
Git 零基础常用指令手册(Gitee / GitHub 通用 )
git·gitee·github
John_ToDebug2 小时前
Git Stash 完全指南:临时保存工作区的艺术
人工智能·git·agent
止语Lab2 小时前
好的 DX 不等于少写代码——三种语言的摩擦力设计课
后端
吃饱了得干活2 小时前
别再手动解析 LLM 输出了!LangChain 四种结构化输出方案对比
后端·python·langchain
程序员天天困2 小时前
Arthas trace 命令怎么用?一行定位最慢那行代码
jvm·后端
Huiturn2 小时前
GPT 5.6 连续编码 10 小时,纯 Python 啃下 Word 二进制格式——doc2docx 实现拆解
后端
dkbnull2 小时前
Spring Boot请求处理组件对比详解
java·spring boot
用户298698530142 小时前
Python 实现 Excel 与 Markdown 互转的实用指南
后端·python·excel
不能只会打代码2 小时前
Day 011 — Spring 全家桶深度拆解
spring boot·mybatis·spring aop·spring mvc·spring ioc
用户77283104908402 小时前
krono-job:零侵入、单二进制交付的分布式任务调度平台(开源)
后端