求关于 git 的使用规章(style) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
tywtyw2002
V2EX    程序员

求关于 git 的使用规章(style)

  •  
  •   tywtyw2002 2014-05-23 14:47:00 +08:00 via iPhone 3680 次点击
    这是一个创建于 4161 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近需要带领一小搓程序猴去写一套关于某组织的信息管理系统和app。涉及到多人开发以及代码管理的问题。

    我平时干运帷比较多,做开发的时间比较少,只做过独立开发,而且git用的很烂。

    目前对于git只是会用命令(很早之前读过git pro),但是不知道该在什么时候和如何去用。

    比如说该多少个文件需要commit一次,commit的内容应该如何去写。
    在什么情况下去见branch等等。

    过几天需要跟组员去讲解git的使用流程,所以过来求助一些关于git的使用规范。

    之前搜过v2ex,发现大家问的问题大多是关于如何去使用某个git命令的。
    14 条回复    2014-05-24 00:02:38 +08:00
    chmlai
        1
    chmlai  
       2014-05-23 14:48:17 +08:00
    git-flow
    chmlai
        2
    chmlai  
       2014-05-23 14:48:35 +08:00
    或者github-flow
    tywtyw2002
        3
    tywtyw2002  
    OP
       2014-05-23 15:06:07 +08:00 via iPhone
    @chmlai 看了一下 主要说流程比较多,但是说怎么写commit很少。
    比如我们某个组员之前的repo 里面commit都是123,qwer之类的。

    关于branch,在啥时候需要建branch,模块话开发,是一个模块建立一个branch吗
    wuyexiong
        4
    wuyexiong  
       2014-05-23 15:07:07 +08:00
    让会的人来, 你给予授权做这件事
    tywtyw2002
        5
    tywtyw2002  
    OP
       2014-05-23 15:08:09 +08:00 via iPhone
    @wuyexiong 目前来说没有。。都是一帮在校生。
    zhangxiao
        6
    zhangxiao  
       2014-05-23 15:15:21 +08:00   3
    我的习惯是:
    * 每次commit应该保证代码是可正确运行的;
    * 一次commit原则上应该只关系到一个改动(或者说一个功能);
    * 一个较大的功能或者改动,应该尽可能分成多次commit,每次都是一个完整的小改动。这样方便review甚至rollback到某个状态;
    * 注释必须有意义,123,qwer这样的要是我的组员,说一次不听直接走人吧;
    * 关于分支的用法估计有不同的模式。我个人习惯保持master的健壮和可部署,所以基本所有开发都在branch里,完成之后merge到master。模块化开发其实和branch应该没什么必然联系,如果是耦合较低的模块甚至可以考虑分不同的repository了。
    czheo
        7
    czheo  
       2014-05-23 15:20:05 +08:00 via iPhone   2
    比较简单的做法是
    中央放个repository,大家clone到本地。
    master永远不开发。只用来做merge管理。
    开发时从master开branch,开发完一个完整功能后马上merge回master,并push master到中央repo。确保master始终是可以跑的程序。
    本地master定期从中央repo pull别人开发的内容。
    branch按自己需求开,比如搞坏了一个branch你就把它删除了从master重新开一个就好了。

    以上方法小团队基本够用,要专业一点的话架个gitlab用Github flow或者git-flow,用pull request做code review
    czheo
        8
    czheo  
       2014-05-23 15:23:16 +08:00 via iPhone
    commit要大概写下做了什么,开发完一个小部分就可以commit一次,不怕频繁,但一定要写干了什么
    8rB61FLBPVSxW2C8
        9
    8rB61FLBPVSxW2C8  
       2014-05-23 15:26:21 +08:00
    我也经常提醒自己,push前不要忘了git pull --rebase
    ChiangDi
        10
    ChiangDi  
       2014-05-23 15:28:22 +08:00 via Android
    你可以去github看看一些著名的项目的commit,一般不同公司有不同的commit规范。
    wuyexiong
        11
    wuyexiong  
       2014-05-23 15:37:12 +08:00
    @HackerOO7 就算你忘了...git也会提醒你的 哈哈哈
    tywtyw2002
        12
    tywtyw2002  
    OP
       2014-05-23 15:37:12 +08:00 via iPhone
    @zhangxiao
    1. 如果是最开始写程序,是不可能运行的。写好一些大致的function定义,然后函数留白做commit?

    类似
    def configRead:
    pasd

    2。模块,是mvc里面的model,目前打算是一个人负责写一个model。

    3,对团队开发的流程和分工不是很懂,不知道哪里能学习到相关知识呢? 很多时候都是自己一个人在写东西。而且老师讲的waterfall model基本是软件的开发流程,也不涉及到团队开发的知识。
    zhangxiao
        13
    zhangxiao  
       2014-05-23 17:03:39 +08:00
    @tywtyw2002 呃,我觉得就算是一开始写也应该是可以运行的吧... 只是功能不全罢了,都是一点一点丰富起来的。
    eclipselu
        14
    eclipselu  
       2014-05-24 00:02:38 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     972 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 22:37 PVG 06:37 LAX 15:37 JFK 18:37
    Do have faith in what you're doing.
    ubao 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