[JAVA探索之路]带你理解Git工作流程

[JAVA探索之路]带你理解Git工作流程

目录

引言

一、Git核心概念

二、四种主流工作流

中心化工作流

功能分支工作流

GitFlow工作流

Forking工作流

场景选择推荐

三、Git实用工具和小技巧

 Git钩子

急救命令

四、一些小建议


引言

想象一下,你和几个朋友一起写一本小说。如果大家都直接在同一个文档上改,很快就会乱套:有人删了重要情节,有人同时修改同一段落,最后谁也不知道哪个版本是对的。

Git就是解决这个问题的“超级版本管理器”,而工作流程就是大家约定好的“写作规矩”。没有规矩,再好的工具也会用乱。今天,我就带你理清各种Git工作流,找到适合你团队的那一套。


一、Git核心概念

  • 仓库:就是你的项目文件夹,Git会记录里面所有文件的变化
  • 提交:相当于给当前版本拍张“快照”,并写上说明
  • 分支:从主线分出去的“平行世界”,可以在里面大胆实验而不影响主线
  • 合并:把分支的改动整合回主线

简单来说,仓库就是图书馆,提交是各种书籍,分支是草稿本,合并是把定稿收进图书馆。


二、四种主流工作流

中心化工作流

  • 怎么玩:只有一个主分支,所有人直接在上面提交
  • 适合谁:2-3人的小团队、个人项目
  • 优点:简单,不用考虑分支管理
  • 缺点:容易冲突,不适合多人协作

 一句话总结:大家一起在一个本子上写作业

功能分支工作流

  • 怎么玩:每做一个新功能,就从主分支拉一个新分支,做完后通过“拉取请求”合并
  • 适合谁:大多数中小型团队
  • 优点:代码有审查,减少错误
  • 缺点:分支可能很多

关键动作

git checkout -b 新功能-登录页面// 创建功能分支 开发、提交... git push origin 新功能-登录页面// 推到远程 在GitHub/GitLab创建Pull Request 同事审查后合并

一句话总结:每人发个草稿本,写好了互相检查再抄到正式本上

GitFlow工作流

  • 分支结构
    • master:只放稳定可发布的代码
    • develop:日常开发的主分支
    • feature/*:功能分支
    • release/*:发布前的测试分支
    • hotfix/*:紧急修复分支
  • 适合谁:有固定发布周期的大型项目、企业级应用
  • 优点:流程清晰,适合复杂项目管理
  • 缺点:流程复杂,学习成本高

一句话总结:像汽车工厂流水线,每个环节严格分工

Forking工作流

  • 怎么玩:每个人复制整个项目到自己的账户,修改后申请合并
  • 适合谁:开源项目、不直接信任的贡献者
  • 优点:维护者完全控制,贡献者无需权限
  • 缺点:同步更新麻烦

一句话总结:大家都抄一本参考书,改好了给老师看,老师觉得好就放进标准答案

场景选择推荐

  • 3人以下小项目​ → 中心化或功能分支
  • 5-20人创业团队​ → 功能分支工作流
  • 50人以上大公司​ → GitFlow
  • 开源项目​ → Forking工作流
  • 经常紧急上线​ → 功能分支+简单GitFlow

三、Git实用工具和小技巧

 Git钩子

  • 提交前自动检查代码格式
  • 推送前自动运行测试
  • 安装Commitizen,让提交信息更规范

急救命令

# 不小心提交错了?撤销上一次提交但保留修改 git reset --soft HEAD~1 # 查看谁改了哪行代码(甩锅必备) git blame 文件名 # 暂时保存手头工作,去处理紧急bug git stash # 处理完回来继续 git stash pop

四、一些小建议

  • 从简单开始:先掌握功能分支工作流,够用80%的场景
  • 工具辅助:用VS Code的Git图形界面,比命令行直观
  • 团队一致:团队统一用同一套流程,比用“最好”的流程更重要
  • 文档化:把你们的流程写成文档,新同事一看就懂

制作不易,如果对你有帮助请点赞,评论,收藏,感谢大家的支持

Read more

Flutter 组件 simplify 的适配 鸿蒙Harmony 实战 - 驾驭路径精简算法、实现鸿蒙端高性能地理足迹渲染与矢量图形优化方案

Flutter 组件 simplify 的适配 鸿蒙Harmony 实战 - 驾驭路径精简算法、实现鸿蒙端高性能地理足迹渲染与矢量图形优化方案

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 simplify 的适配 鸿蒙Harmony 实战 - 驾驭路径精简算法、实现鸿蒙端高性能地理足迹渲染与矢量图形优化方案 前言 在鸿蒙(OpenHarmony)生态的运动健康轨迹展示、高精度室内导航以及大规模矢量地图看板开发中,“路径性能”是决定用户滑动流畅度的核心红线。面对用户运动 1 小时产生的包含数万个(X, Y)坐标点的原始 GPS 序列。如果直接将其交给鸿蒙端的渲染层进行绘制,不仅会引发由于顶点(Vertices)过多导致的 GPU 负载饱和。更会由于频繁的坐标点内存申请(Memory Allocation),产生严重的 UI 掉帧与功耗飙升。 我们需要一种“去重存精、视觉无损”的几何精简艺术。 simplify 是一套专注于极致性能的 Douglas-Peucker 及其增强算法实现。它能瞬间将冗余的、

By Ne0inhk
【优选算法】双指针算法:专题一

【优选算法】双指针算法:专题一

目录 引言: 【283.移动零】 1、题目描述 2、实现核心及思路 解题思路: 思路可视化: 代码实现: 代码测试: 【1089.复写零】 1、题目描述 2、实现核心及思路 解题思路: 思路可视化: 代码实现: 代码测试: 【202. 快乐数】 1、题目描述 2、实现核心及思路 解题思路: 代码实现: 【11. 盛水最多容器】 1、题目描述 2、实现核心及思路 解题思路: 思路可视化: 代码实现: 引言: 常见的双指针有两种形式,一种是对撞指针,一种是快慢指针。 对撞指针:一般用于顺序结构中,也称左右指针。 • 对撞指针从两端向中间移动。一个指针从最左端开始,另一个从最右端开始,然后逐渐往中间逼近。

By Ne0inhk
算法入门:专题攻克一---双指针4(三数之和,四数之和)强推好题,极其锻炼算法思维

算法入门:专题攻克一---双指针4(三数之和,四数之和)强推好题,极其锻炼算法思维

🎬 胖咕噜的稞达鸭:个人主页 🔥 个人专栏: 《数据结构》《C++初阶高阶》《算法入门》 ⛺️技术的杠杆,撬动整个世界! 三数之和 三数之和 1. 题目分析: 取三元组中的三个数,num[i], num[j], num[k], i!=j, i != k; j != k ,也就是说一次取到的三个数不可以是相同位置的,三个数的位置各不相同。同时也满足三个数的相加等于0。最后还得是不同的组合(去重操作)。 这里给一个数组,便于演示: 【 -4 -4 -1 0 0 0 1 1 4 4 5 6】 2. 算法原理: 解法一:先排序+暴力枚举+

By Ne0inhk
《算法闯关指南:动态规划算法--斐波拉契数列模型》--01.第N个泰波拉契数,02.三步问题

《算法闯关指南:动态规划算法--斐波拉契数列模型》--01.第N个泰波拉契数,02.三步问题

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 01.第N个泰波拉契数 * 解法(动态规划): * 算法流程: * C++算法代码: * 算法总结&&笔记展示: * 02.三步问题 * 解法(动态规划): * 算法思路: * C++算法代码: * 算法总结&&笔记展示: * 结尾: 前言: 聚焦算法题实战,系统讲解三大核心板块:优选算法:剖析动态规划、二分法等高效策略,学会寻找“最优解”。 递归与回溯:掌握问题分解与状态回退,攻克组合、排列等难题。 贪心算法:理解“

By Ne0inhk