Git Workflow:几种常见的 Git 工作流
本文最后更新于 33 天前,如有失效请评论区留言。

前言

之前写代码的时候,一直是自己一个人在本地仓库里瞎搞,直到后来开始跟别人协作,才发现 Git 的工作流真的很重要。如果你也是一个人写项目,可能觉得 git addgit commitgit push 就完事了,但一旦涉及到多人协作,就会出现各种冲突和混乱。

这篇文章就来聊聊几种常见的 Git 工作流,以及我在实际项目中是怎么用的。

Centralized Workflow

最简单的工作流,就是所有人直接在 main 分支上工作。这种适合小团队或者个人项目,没什么花里胡哨的东西:

特点:只有一个主分支,所有人直接 push 到 main

命令也很简单:

  • git pull origin main — 先拉最新代码
  • git add . — 暂存修改
  • git commit -m 你的提交信息 — 提交
  • git push origin main — 推送

但是问题来了,如果两个人同时改了同一个文件的同一个地方,push 的时候就会冲突。这时候需要先 git pull,手动解决冲突,然后再 push。

Feature Branch Workflow

这个是我在实际项目中用得最多的。核心思想就是:每开发一个新功能,就新建一个分支,开发完了再合并到 main。

比如你要开发一个用户登录功能:

  1. 从 main 创建新分支:git checkout -b feature/user-login
  2. 在这个分支上开发,随便 commit
  3. 开发完了,push 到远程:git push origin feature/user-login
  4. 创建 Pull Request(或者 Merge Request)
  5. Code Review 通过后,合并到 main

这种工作流的好处是 main 分支始终保持稳定,不会出现有人提交了半成品代码导致整个项目跑不起来的情况。

Gitflow Workflow

Gitflow 是一种更复杂的工作流,适合大型项目和正式的发布流程。它定义了好几种分支类型:

  • main:永远是稳定的、可发布的版本
  • develop:开发分支,集成各个 feature
  • feature/*:功能分支,从 develop 创建
  • release/*:发布准备分支
  • hotfix/*:紧急修复分支

说实话,我在学校项目里没怎么用过这个,因为太重了。但是据说在一些大公司里,这种工作流很常见,特别是需要严格版本管理的项目。

Forking Workflow

如果你参与过开源项目,应该对这个不陌生。基本流程是:

  1. Fork 别人的仓库到自己的账号下
  2. Clone 到本地开发
  3. Push 到自己的远程仓库
  4. 向原仓库提 Pull Request

这种工作流的好处是,你不需要有原仓库的写权限就能贡献代码。GitHub 上大部分开源项目都是用这种模式。

实际项目中的选择

说了这么多,实际项目中该怎么选呢?我的经验是:

  • 个人项目:Centralized Workflow 就够了,简单直接
  • 2-5 人小团队:Feature Branch Workflow,够用且灵活
  • 大团队/正式项目:Gitflow,虽然复杂但规范
  • 开源贡献:Forking Workflow,这是标准流程

我个人最常用的是 Feature Branch Workflow,因为大部分项目都是小团队协作,这种工作流既不会太复杂,又能保证代码质量。而且配合 GitHub 的 Pull Request 功能,Code Review 也很方便。

一些实用的 Git 命令

最后分享几个我在日常开发中常用的 Git 命令:

git stash:临时保存当前修改,比如你正在开发一个功能,突然需要切换分支修 bug,就可以用 stash 先把当前修改存起来。

git log --oneline --graph:用图形化的方式查看分支历史,特别直观。

git rebase -i HEAD~3:交互式变基,可以合并、修改、删除最近的几次提交。这个在整理 commit 历史的时候很有用。

好了,以上就是我对 Git 工作流的一些理解和实践。希望能对你有帮助。

版权声明:除特殊说明,博客文章均为原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇