提问一个关于 git 很低级的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yeqizhang
V2EX    问与答

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

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

    去到一个公司发现每个人都会有一个用自己名字命名的远程分支... 因为上一家接触到的 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     Solana     889 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:20 PVG 06:20 LAX 15:20 JFK 18:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86