提问一个关于 git 很低级的问题

2020-05-18 10:42:29 +08:00
 yeqizhang

去到一个公司发现每个人都会有一个用自己名字命名的远程分支... 因为上一家接触到的 git 的分支管理,是基于某个远程分支 checkout 一个本地分支,不会把这个本地分支重新创建一个分支再 push 一个新的个人远程分支。

每个人都搞一个远程分支有没有问题的,大家都是这么玩的?有啥好处?

2858 次点击
所在节点    问与答
21 条回复
eGlhb2Jhb2Jhbw
2020-05-18 10:47:27 +08:00
这种没见过。猜一下,可能没有明确的业务需求,不好拉业务分支,创建自己的分支,每天下班前 push 一下只是为了同步自己的 workspace 吧。
rioshikelong121
2020-05-18 10:49:27 +08:00
我们是每个 task 都新建一个分支

具体遵循的规范是 git flow. 使用了 git flow 的 cli. 配置的时候分支的前缀名都配置成各个开发的英文名.
yeqizhang
2020-05-18 10:54:17 +08:00
@eGlhb2Jhb2Jhbw 应该是楼下说的那样,不过我离职了没办法问项目的人为什么这样,现在想起来是想了解下这块的姿势
yeqizhang
2020-05-18 10:58:35 +08:00
@rioshikelong121 谢谢。git flow 这块的知识确实是我的知识盲区。之前接触到的是基于产品的一个需求版本来搞一条开发,做好一个 task 就可以合到测试分支给测试。
W1angMh
2020-05-18 11:19:38 +08:00
我们公司就是每人都拉 dev 分支到本地,然后本地再从 dev 上拉起一个新分支,在这条新分支上开发新功能或者修复 bug,任务完成再推到远程仓库发起 merge request,架构师 review 以后再合并到 dev 上,每周五再把 dev 代码回归到 master
eGlhb2Jhb2Jhbw
2020-05-18 11:24:04 +08:00
@yeqizhang #3 你描述的这 Git Flow 并不标准,再加上我以为你知道 Git flow 呢,就没往这上说。Git Flow 一般也会是 Feature 命名的分支,不会存在是 “某个人” 的分支的情况,开发这个 Feature 的有可能是几个人,这几个人也会经常 Rebase Feature 分支上其他人的代码。
MuscleOf2016
2020-05-18 11:29:33 +08:00
还好吧,我们也是拉 feature 分支,然后分支名前加上个人昵称简写 xxx/feat/xxxx,主要位了知道功能是谁负责的
yeqizhang
2020-05-18 11:41:04 +08:00
@W1angMh 谢谢,学到了,github 上有这个东西。就你的了解,这样做除了代码审查和工作量的查看以外,其它的优点是什么呢?
yeqizhang
2020-05-18 11:44:23 +08:00
@eGlhb2Jhb2Jhbw 嗯嗯,谢谢纠正。5 楼应该说的没问题
zoffy
2020-05-18 12:54:02 +08:00
正确的做法是一个任务一个 feature 分支,但如果管理水平不够,这会给开发人员带来不小的负担,所以每人一条个人分支,是一种折中做法

至于你们之前的全部人在一个分支上提交,是错误的
yeqizhang
2020-05-18 13:28:45 +08:00
@zoffy 也不能说是错误的吧,就是没有把一个版本的功能拆分几个 feature,不过我们之前那群人确实没什么人懂这个东西,所以我也觉得是有问题的。你说的负担指的是什么呢?
otakustay
2020-05-18 13:45:22 +08:00
我也会这么干(虽然多数是 feature 分支),原因很简单,怕硬盘给我炸了丢代码
eGlhb2Jhb2Jhbw
2020-05-18 14:07:24 +08:00
@yeqizhang #11 不是错误的,这种管理模式偏向是 Trunk-based Development ( TBD )。也是一个比较主流的代码管理方式,和 Git Flow 各有千秋。
charlie21
2020-05-18 14:09:18 +08:00
相当于私人文件夹
zoffy
2020-05-18 14:10:04 +08:00
@yeqizhang #11 管理水平不够,很可能开发人员需要同时进行数条分支,这是挺痛苦的。还有就是要命名很多分支,有些任务根本不知道该叫什么
eGlhb2Jhb2Jhbw
2020-05-18 14:10:05 +08:00
@yeqizhang #11 建议你还是查一下常见的这几种代码管理方式的优缺点吧,有时候会根据项目和团队组成,混起来用。
msg7086
2020-05-18 15:26:49 +08:00
Git 是一个很强大很灵活的工具,上下限跨度很大,可以做到干干净净管理,也可以坑到像 cvs 一样挤作一团,全看管理和技术能力。

反正 git 的分支是免费的,那就多用起来呗,一个 feature 一搞分支,一个人一个暂存盘分支,都可以。
lurenw
2020-05-18 18:14:12 +08:00
可以了解下常见的 git flow. gitlab, bitbucket 都有推荐 git flow, 但核心无外乎 feature, master, release.分支.用 feature 分支来开发, 可以使得各块功能都能独立开发而不冲突, 对敏捷开发友好, 而且能相对快速追溯到某个功能点的改动.

当然每个团队有各自的历史包袱和开发习惯.
lights
2020-05-18 18:18:49 +08:00
我们曾经的实践是 git 与 kanban 关联,看板上一个卡片对应一个分支,而且都会 push 到远端做 code review 再直接合并到主干
与 kanban 关联的好处是,只要卡片划分合理,卡片指定为具体的人了,那么分支也就是对应的人
CI 过程也能根据 git 的分支名字找到卡片,然后实时(甚至自动)更新卡片的状态(进行中、review 中、完成)
yeqizhang
2020-05-19 01:12:01 +08:00
@zoffy 了解了,同时进行多个分支确实痛苦,但也没法避免的。命名确实是个头疼的问题哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/672779

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX