[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

通义千问1.5-1.8B-Chat-GPTQ-Int4体验报告:vLLM部署+chainlit前端实测

通义千问1.5-1.8B-Chat-GPTQ-Int4体验报告:vLLM部署+chainlit前端实测 1. 引言:轻量级AI助手的魅力 在AI技术快速发展的今天,大模型部署的门槛和成本一直是开发者面临的挑战。阿里巴巴最新推出的通义千问Qwen1.5系列中,1.8B-Chat-GPTQ-Int4版本为我们提供了一个理想的解决方案——在保持强大能力的同时,大幅降低了资源需求。 这个经过量化的模型仅有1.8B参数,通过GPTQ-Int4技术压缩,不仅减少了内存占用,还能在普通硬件上流畅运行。结合vLLM的高效推理引擎和chainlit的友好前端,这套方案让每个人都能轻松搭建自己的AI对话系统。 本文将带你完整体验从部署到使用的全过程,看看这个小而强的模型在实际应用中的表现如何。 2. 环境准备与快速部署 2.1 系统要求与一键部署 通义千问1.5-1.8B-Chat-GPTQ-Int4镜像已经预配置了完整的环境,包括: * vLLM推理引擎:专为大规模语言模型设计的高性能服务框架 * chainlit前端界面:简洁易用的Web聊天界面 * 模型文件:预下载的量化模

By Ne0inhk

JavaWeb学习笔记:动静态Web、URL、HTTP

Web Web是在互联网上,用浏览器访问的一种信息服务。可以简单理解成,我们打开一个网络链接,展示的一个个网页,就是Web。 Web有动态Web和静态Web: * 静态Web:是指开发者提前写好Web网页(HTML),所有人看到的网页内容都是一样的Web。早期的Web是静态Web,是使用HTML将网页内容写好放在服务器中,所有人访问网页,都是看到这个HTML的内容。静态Web的特点是所有人看到相同的内容,网页内容、数据都是写在HTML里,不与数据库交互。静态Web的业务流程大致如下: * Web开发者编写好HTML,保存到服务器某目录。 * 用户从浏览器打开网页,比如www.xxxx.com/index.html。 * 服务器接受到请求,从文件目录中找到这个index.html文件,发送给用户。 * 用户浏览器接收到HTML,渲染成网页展示给用户。 * 动态Web:是指开发者并非提前写好Web网页,而是在用户访问时,动态生成网页HTML内容,每个人看到的网页内容都是不一样的Web。现代Web几乎都是动态Web,每个人看到的Web内容都可能不一样,比如有

By Ne0inhk
this、箭头函数与普通函数:前端实战避坑指南 | JS 基础语法与数据操作篇

this、箭头函数与普通函数:前端实战避坑指南 | JS 基础语法与数据操作篇

【this/箭头函数/普通函数】+【前端中后台开发】:从【this绑定逻辑】到【落地实操】,彻底搞懂【函数选型】的最佳写法,避开Promise/模板事件/对象方法高频坑! 📑 文章目录 * 前言 * 一、一个真实的报错场景 * 二、基础扫盲:this 到底是谁决定的 * 三、箭头函数 vs 普通函数:本质区别 * 3.1. this 的区别(案例说明) * 3.2. arguments 的区别(案例说明) * 3.3. 能否 new / 作为构造函数(案例说明) * 四、后台项目里最容易写错的 5 种场景 * 4.1 场景

By Ne0inhk