Git 开发全流程:一套不踩坑的 Git 团队开发完整流程(小白教程)

Git 开发全流程:一套不踩坑的 Git 团队开发完整流程(小白教程)

目录

文章摘要

一、为什么一定要规范 Git 开发流程?

二、准备阶段:确认你是谁(只需一次)

三、第一步:克隆公司仓库(git clone)

四、第二步:拉取远端最新快照(团队习惯:先 fetch 再看)

五、第三步:从远端快照创建你的本地开发分支(核心步骤)

六、第四步:在本地分支上开发与提交(写代码 → add → commit(最小闭环)

6.1 查看改动

6.2 暂存修改

6.3 提交到本地分支

七、第五步:推送到远端,参与团队协作

八、第六步:开发过程中如何同步公司最新代码(高频场景)

九、开发完成:提交 PR / MR 合并回公司分支(团队标准闭环)

十、常见错误与易踩坑总结


文章摘要

在实际工程开发中,很多 Git 问题并不是不会写代码,而是分支用错了

  • 直接在 origin/xxx 上开发
  • 不知道为什么进入了 detached HEAD
  • 提交后代码“丢了”
  • git pullfetchmerge 概念混乱

本文从 0 开始,完整讲清一套真实公司通用的 Git 开发流程,从 git clone 到创建本地开发分支,再到开发、同步、提交、合并,一步不省,一坑不跳

适合人群:

  • Git 新手 / 刚进公司
  • 经常被分支问题卡住的开发者
  • 想把 Git 用得更“工程化”的同学

一、为什么一定要规范 Git 开发流程?

在公司环境中:

  • 不能直接在公司主分支上开发
  • 不能在远端分支(origin/xxx)上提交
  • 不能依赖“反正能 push 上去”

你真正需要的是:

一条清晰的、可回滚、可协作、可评审的开发链路

而这条链路,一定从 git clone 开始。


二、准备阶段:确认你是谁(只需一次)

git config --global user.name "XXXX" git config --global user.email "[email protected]" 

查看是否生效:

git config --global -l 

三、第一步:克隆公司仓库(git clone)

git clone <repo_url> cd <repo_dir> 

很多人以为 git clone 只是“把代码拷下来”,但实际上它自动做了 4 件事:

1️⃣ 创建一个本地 Git 仓库
2️⃣ 添加远端仓库,默认命名为 origin

3️⃣ 自动执行一次 git fetch origin
4️⃣ 生成远端跟踪分支(如 origin/feature/driver

你可以验证:

git status git branch git branch -a 

你通常会看到:

* main remotes/origin/main remotes/origin/feature/driver 

你会看到类似:

  • 本地:main(或 master / dev
  • 远端跟踪分支:remotes/origin/feature/driver

⚠️ 注意重点

clone 下来的是“远端快照 origin/xxx”
本地并没有 feature/driver 这个可开发分支

四、第二步:拉取远端最新快照(团队习惯:先 fetch 再看)

git fetch origin 

然后确认远端有哪些分支:

git branch -r 

比如你发现公司主开发分支是:

origin/feature/driver

五、第三步:从远端快照创建你的本地开发分支(核心步骤)

永远不要直接 checkout origin/feature/driver 做开发(会 detached HEAD)

✅ 正确做法:

git switch -c feature/kaifa origin/feature/driver

(旧写法等价)

git checkout -b feature/kaifa origin/feature/driver

这一步同时完成:

以公司分支为起点创建你自己的本地分支并立即切换到该分支本地可写分支:feature/kaifa基于只读快照:origin/feature/driver

此时结构是:

feature/kaifa(本地 · 可开发) | o───o───o origin/feature/driver(远端 · 只读) | o───o───o 

六、第四步:在本地分支上开发与提交(写代码 → add → commit(最小闭环)

此时你只做一件事:

只在 feature/kaifa 上写代码

6.1 查看改动

git status git diff 

6.2 暂存修改

git add . 

6.3 提交到本地分支

git commit -m "feat: 完成 xxx 功能" 

⚠️ 一个关键认知:

git commit 只会进入 feature/kaifa(本地)

不会影响 origin/feature/driver

七、第五步:推送到远端,参与团队协作

首次推送建议使用:

git push -u origin feature/kaifa

-u 作用是:

在远端创建 feature/kaifa建立本地与远端的跟踪关系

之后你只需要:

git push

八、第六步:开发过程中如何同步公司最新代码(高频场景)

公司同事一直在更新 feature/driver,你需要同步。

推荐安全流程(工程常用)

git switch feature/kaifa git fetch origin git merge origin/feature/driver 

如果有冲突:

1️⃣ 修改冲突文件
2️⃣ git add 冲突文件
3️⃣ git commit

⚠️ 新人阶段不建议一上来就 rebase


九、开发完成:提交 PR / MR 合并回公司分支(团队标准闭环)

做完功能并 push 后:

远端有 feature/kaifa公司主开发在 feature/driver

✅ 正规流程是:

1)在 GitLab / GitHub / Gitee 上创建 MR/PR
2)目标分支:feature/driver
3)评审通过后合并
4)你本地再同步一次最新 feature/driver


十、常见错误与易踩坑总结

❌ 在 origin/xxx 上开发
❌ detached HEAD 状态下长期写代码
❌ 不区分 fetch / merge / pull
❌ 把“远端分支”当“本地分支”

✅ 正确认知:

  • origin/xxx = 只读快照
  • 本地分支 = 唯一可开发实体
  • 提交必须有分支承载
git clone 只是同步远端状态;
真正的开发,永远从“基于 origin/xxx 创建本地分支”开始。

Read more

我的世界Java版1.21.4的Fabric模组开发教程(二十三)创建生物(下)实体在游戏中的实现(1)

我的世界Java版1.21.4的Fabric模组开发教程(二十三)创建生物(下)实体在游戏中的实现(1)

这是适用于Minecraft Java版1.21.4的Fabric模组开发系列教程专栏第二十三章——创建生物(下)实体在游戏中的实现(1)。如果还未开始制作生物的外观和动画,请参考我的世界Java版1.21.4的Fabric模组开发教程(二十二)创建生物(上)实体外观与动画设计。想要阅读其他内容,请查看或订阅上面的专栏。 在上一章节中,我们完成了测试生物(test_entity) 的外观与动画设计,并导出了实体模型文件、实体动画文件和实体平面展开图。接下来,我们将使用这些文件,将生物真正的加入到游戏中。 即使在前一章中完成了创建实体的准备工作,想要在游戏中添加实体依然非常繁琐。一般,我们按照下面每个步骤需要完成的具体工作为顺序依次推进: * 注册实体模型层 * 创建实体模型层静态常量; * 编写实体渲染状态类; * 导入实体模型类; * 注册实体及其模型渲染器 * 创建实体注册键静态常量; * 编写实体类; * 注册实体; * 编写实体模型渲染器类; * 注册实体属性 * 定义实体属性; * 完成创建实体的其他工作; 为实

By Ne0inhk
Java 大视界 -- Java 大数据机器学习模型在电商用户画像构建与精准营销中的应用

Java 大视界 -- Java 大数据机器学习模型在电商用户画像构建与精准营销中的应用

Java 大视界 -- Java 大数据机器学习模型在电商用户画像构建与精准营销中的应用 * 引言: * 正文: * 一、电商用户画像构建的底层逻辑与数据基石 * 1.1 用户画像的四维数据体系 * 1.2 数据采集与预处理架构设计 * 二、Java 驱动的机器学习模型构建用户画像核心能力 * 2.1 协同过滤算法的工程化实现 * 2.2 聚类算法实现用户分群 * 三、精准营销系统的工程实践与行业案例 * 3.1 京东 “京准通” 智能营销平台 * 3.2 阿里巴巴 “千人千面” 推荐系统 * 四、系统性能优化与工程落地细节 * 4.1 高并发场景下的性能调优策略 * 4.2 模型全生命周期管理体系 * 结束语: * 🗳️参与投票和联系我: 引言: 嘿,亲爱的 Java

By Ne0inhk
JAVA 集合框架进阶:Map 接口的深度解析与实战

JAVA 集合框架进阶:Map 接口的深度解析与实战

JAVA 集合框架进阶:Map 接口的深度解析与实战 1.1 本章学习目标与重点 💡 掌握 Map 接口的核心特性,理解 Key-Value 键值对的存储结构与设计思想。 💡 熟练掌握 HashMap、LinkedHashMap、TreeMap 等实现类的底层原理与适用场景。 💡 理解 Map 集合的线程安全问题,掌握并发环境下的解决方案。 ⚠️ 本章重点是 HashMap 的底层实现原理 和 不同 Map 实现类的性能对比,这是面试和开发中的高频核心考点。 1.2 Map 接口核心概述 1.2.1 Map 接口的定义与特性 💡 Map 是一种键值对(Key-Value) 集合,它的核心是通过键(Key)来唯一标识值(Value)。 Map 接口中的 Key

By Ne0inhk
Java程序员的职业加速器:飞算JavaAI一键生成完整工程代码,轻松应对开发挑战

Java程序员的职业加速器:飞算JavaAI一键生成完整工程代码,轻松应对开发挑战

Java程序员的职业加速器:飞算JavaAI一键生成完整工程代码,轻松应对开发挑战 一、引言 作为一名中高级Java开发者,日常工作中最具挑战性的任务常常不是代码本身,而是如何应对老旧项目的复杂架构、频繁迭代的新增需求,以及反复琢磨的模块接口设计。这些问题不仅消耗大量的时间和精力,还可能影响开发效率,导致代码质量参差不齐,甚至延误项目进度。 飞算JavaAI的出现正是为了帮助开发者解决这些痛点。通过其强大的智能引导和一键生成完整工程代码的功能,飞算JavaAI有效减少了重复性劳动,显著提高了开发效率和代码质量,让开发者摆脱繁琐的日常任务,专注于核心业务逻辑的创新与实现。 使用飞算JavaAI,开发者能够显著降低因重复性工作带来的疲劳感和挫败感,提升自信心和工作积极性,在职业发展与个人生活之间找到更好的平衡。 文章目录 * Java程序员的职业加速器:飞算JavaAI一键生成完整工程代码,轻松应对开发挑战 * 一、引言 * 二、基础环境安装 * 三、飞算JavaAI核心功能评测 * 1. 一键生成完整工程代码 * 2. 智能分析

By Ne0inhk