V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yeqizhang
V2EX  ›  问与答

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

  •  1
     
  •   yeqizhang · 2020-05-18 10:42:29 +08:00 · 2840 次点击
    这是一个创建于 1642 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    21 条回复    2020-05-19 01:48:51 +08:00
    eGlhb2Jhb2Jhbw
        1
    eGlhb2Jhb2Jhbw  
       2020-05-18 10:47:27 +08:00   ❤️ 1
    这种没见过。猜一下,可能没有明确的业务需求,不好拉业务分支,创建自己的分支,每天下班前 push 一下只是为了同步自己的 workspace 吧。
    rioshikelong121
        2
    rioshikelong121  
       2020-05-18 10:49:27 +08:00   ❤️ 1
    我们是每个 task 都新建一个分支

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

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

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

    当然每个团队有各自的历史包袱和开发习惯.
    lights
        19
    lights  
       2020-05-18 18:18:49 +08:00   ❤️ 1
    我们曾经的实践是 git 与 kanban 关联,看板上一个卡片对应一个分支,而且都会 push 到远端做 code review 再直接合并到主干
    与 kanban 关联的好处是,只要卡片划分合理,卡片指定为具体的人了,那么分支也就是对应的人
    CI 过程也能根据 git 的分支名字找到卡片,然后实时(甚至自动)更新卡片的状态(进行中、review 中、完成)
    yeqizhang
        20
    yeqizhang  
    OP
       2020-05-19 01:12:01 +08:00
    @zoffy 了解了,同时进行多个分支确实痛苦,但也没法避免的。命名确实是个头疼的问题哈哈
    yeqizhang
        21
    yeqizhang  
    OP
       2020-05-19 01:48:51 +08:00
    @msg7086 嗯,之前都是胡乱的用,连 rebase 都没有,历史图都看不下的,所以才有怀疑分支多了的问题。现在通过大家的提点也了解了一些
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   972 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:25 · PVG 06:25 · LAX 14:25 · JFK 17:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.