团队开发中的git范式流程
0. 前言
本文适合刚开始上手git版本管理工具做开发的新手来阅读学习,养成规范开发的习惯
下面以一个实际的GitHub的project segment-anything 来做示范,演示如何在团队开发中规范使用git

在此之前先介绍一下git的主要空间分区如下所示:
工作区(Working Directory)
↓ git add
暂存区(Staging Area / Index)
↓ git commit
本地仓库(Repository)
↓ git push
远程仓库(Remote Repository)
1. fork
首先将你要贡献的project先fork到自己的GitHub中,这样你就可以在自己的origin仓库中开发而不影响到团队的upstream仓库
,
2. git clone
接着就是将远程的origin仓库克隆到本地个人仓库,使用如下的命令:
git clone https://github.com/cantonice/segment-anything.git
如果使用的是https协议就复制图中所示的这个url跟在clone后面,如果用的是ssh同理

3. git pull
在克隆完成之后,先不要急着开发,在开发之前要记得git pull拉取最新的团队代码来同步一下本地的开发,也可以用分解的操作git fetch origin main+git rebase/merge main
4. git checkout
现在已经准备好在已有的仓库进行开发了,但是在此之前一定要主要我们不要直接在main分支就开发,因为我们要有一种意识就是main分支在团队开发中是属于公共财产,不是私人的想怎么样就怎么样的,虽然这里的main也是自己origin中的,但是最后如果PR还是会有一定的误会,所以从刚开始就要规范开发习惯,应该现在本地创建一个开发分支,一般来说有以下几种分支:
feat/xxx // 全称feature,表示新增功能类型的分支
fix/xxx // 全称bugfix,表示修复bug用的分支
style/xxx // 改变格式风格
docs/xxx // 改变文档用的分支
refactor/xxx // 重构代码的分支,逻辑不改变
下面以新增一个功能为示范来创建一个分支来做开发,比如我做了一个推理的功能,我可以像下面这样来创建一个分支:
git checkout -b feat/inference
这个表示创建了一个叫做feat/inference的分支,然后切换到这个分支上
接下来你就可以自己在这个分支上开发一个推理的功能的具体实现
5. git add
新增或者修改了文件后要记得将文件添加到本地的暂存区,使用如下命令
git add <filename>
6. git commit
养成良好的习惯多提交,记录每一个微小的改动
git commit -m "feat:a infernce"
7. git fetch
在我们开发的期间,远程的分支可能不是一成不变的,可能有其他同事贡献了自己代码,所以在push上去之前,先要和远程的仓库对齐一下,这个时候就要用到git fetch
git fetch origin
8. git rebase or git merge
在将origin的代码拉下来之后,我们要将自己的代码“接”上去,这个时候就有两种方式了,如下所示:
// type A
git rebase // rebase中文翻译变基,执行这个相当于将我们本地的分支接在远程拉下来的分支上
// type B
git merge // 这个就是相当于将两个分支合并在一起
9. git push
最后一步就是将我们的代码push到origin中
git push origin feat/inference
10. 结语
在团队合作中,git是一个非常好用的利器,本文对团队开发中git的使用规范做了一个简单好上手的范式教程,流程总览如下图所示,希望能帮到正在学习的同学。在没有形成规范的操作之前,大部分人都会有过或大或小的代码冲突、版本管理混乱等问题,后期我会写一些关于conflict的处理、branch管理的细节问题处理方法,敬请期待....


浙公网安备 33010602011771号