去到一个公司发现每个人都会有一个用自己名字命名的远程分支... 因为上一家接触到的 git 的分支管理,是基于某个远程分支 checkout 一个本地分支,不会把这个本地分支重新创建一个分支再 push 一个新的个人远程分支。
每个人都搞一个远程分支有没有问题的,大家都是这么玩的?有啥好处?
1
eGlhb2Jhb2Jhbw 2020-05-18 10:47:27 +08:00 1
这种没见过。猜一下,可能没有明确的业务需求,不好拉业务分支,创建自己的分支,每天下班前 push 一下只是为了同步自己的 workspace 吧。
|
2
rioshikelong121 2020-05-18 10:49:27 +08:00 1
我们是每个 task 都新建一个分支
具体遵循的规范是 git flow. 使用了 git flow 的 cli. 配置的时候分支的前缀名都配置成各个开发的英文名. |
3
yeqizhang OP @eGlhb2Jhb2Jhbw 应该是楼下说的那样,不过我离职了没办法问项目的人为什么这样,现在想起来是想了解下这块的姿势
|
4
yeqizhang OP @rioshikelong121 谢谢。git flow 这块的知识确实是我的知识盲区。之前接触到的是基于产品的一个需求版本来搞一条开发,做好一个 task 就可以合到测试分支给测试。
|
5
W1angMh 2020-05-18 11:19:38 +08:00 via iPhone 4
我们公司就是每人都拉 dev 分支到本地,然后本地再从 dev 上拉起一个新分支,在这条新分支上开发新功能或者修复 bug,任务完成再推到远程仓库发起 merge request,架构师 review 以后再合并到 dev 上,每周五再把 dev 代码回归到 master
|
6
eGlhb2Jhb2Jhbw 2020-05-18 11:24:04 +08:00 1
@yeqizhang #3 你描述的这 Git Flow 并不标准,再加上我以为你知道 Git flow 呢,就没往这上说。Git Flow 一般也会是 Feature 命名的分支,不会存在是 “某个人” 的分支的情况,开发这个 Feature 的有可能是几个人,这几个人也会经常 Rebase Feature 分支上其他人的代码。
|
7
MuscleOf2016 2020-05-18 11:29:33 +08:00 1
还好吧,我们也是拉 feature 分支,然后分支名前加上个人昵称简写 xxx/feat/xxxx,主要位了知道功能是谁负责的
|
8
yeqizhang OP @W1angMh 谢谢,学到了,github 上有这个东西。就你的了解,这样做除了代码审查和工作量的查看以外,其它的优点是什么呢?
|
9
yeqizhang OP @eGlhb2Jhb2Jhbw 嗯嗯,谢谢纠正。5 楼应该说的没问题
|
10
zoffy 2020-05-18 12:54:02 +08:00 1
正确的做法是一个任务一个 feature 分支,但如果管理水平不够,这会给开发人员带来不小的负担,所以每人一条个人分支,是一种折中做法
至于你们之前的全部人在一个分支上提交,是错误的 |
11
yeqizhang OP @zoffy 也不能说是错误的吧,就是没有把一个版本的功能拆分几个 feature,不过我们之前那群人确实没什么人懂这个东西,所以我也觉得是有问题的。你说的负担指的是什么呢?
|
12
otakustay 2020-05-18 13:45:22 +08:00 1
我也会这么干(虽然多数是 feature 分支),原因很简单,怕硬盘给我炸了丢代码
|
13
eGlhb2Jhb2Jhbw 2020-05-18 14:07:24 +08:00 1
@yeqizhang #11 不是错误的,这种管理模式偏向是 Trunk-based Development ( TBD )。也是一个比较主流的代码管理方式,和 Git Flow 各有千秋。
|
14
charlie21 2020-05-18 14:09:18 +08:00 1
相当于私人文件夹
|
15
zoffy 2020-05-18 14:10:04 +08:00
@yeqizhang #11 管理水平不够,很可能开发人员需要同时进行数条分支,这是挺痛苦的。还有就是要命名很多分支,有些任务根本不知道该叫什么
|
16
eGlhb2Jhb2Jhbw 2020-05-18 14:10:05 +08:00 1
@yeqizhang #11 建议你还是查一下常见的这几种代码管理方式的优缺点吧,有时候会根据项目和团队组成,混起来用。
|
17
msg7086 2020-05-18 15:26:49 +08:00 via Android 1
Git 是一个很强大很灵活的工具,上下限跨度很大,可以做到干干净净管理,也可以坑到像 cvs 一样挤作一团,全看管理和技术能力。
反正 git 的分支是免费的,那就多用起来呗,一个 feature 一搞分支,一个人一个暂存盘分支,都可以。 |
18
lurenw 2020-05-18 18:14:12 +08:00 1
可以了解下常见的 git flow. gitlab, bitbucket 都有推荐 git flow, 但核心无外乎 feature, master, release.分支.用 feature 分支来开发, 可以使得各块功能都能独立开发而不冲突, 对敏捷开发友好, 而且能相对快速追溯到某个功能点的改动.
当然每个团队有各自的历史包袱和开发习惯. |
19
lights 2020-05-18 18:18:49 +08:00 1
我们曾经的实践是 git 与 kanban 关联,看板上一个卡片对应一个分支,而且都会 push 到远端做 code review 再直接合并到主干
与 kanban 关联的好处是,只要卡片划分合理,卡片指定为具体的人了,那么分支也就是对应的人 CI 过程也能根据 git 的分支名字找到卡片,然后实时(甚至自动)更新卡片的状态(进行中、review 中、完成) |