在 github 上为他人项目贡献代码要注意些什么呢 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eloah
V2EX    GitHub

在 github 上为他人项目贡献代码要注意些什么呢

  •  
  •   eloah 2016-08-07 02:45:16 +08:00 4496 次点击
    这是一个创建于 3426 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在 github 上为一个项目贡献代码(其实也就是帮忙改改 bug 加点小功能),然后每次都被作者 if you ...... I will be happy to merge

    问题包括
    命名规范和代码规范(驼峰命名,私有方法命名,换行问题)
    一个 issue 里面提了很多问题(作者说要尽量分开)
    无意义修改(只是把一些代码位置调整)

    感觉作者都快被我弄烦了

    想请教一下各位,作为贡献者,你们平时是怎么做的,有哪里需要注意的;作为项目的拥有者,你们比较反感什么样的 pull request 或者 isue 呢?
    19 条回复    2016-08-07 21:51:14 +08:00
    Return2legacy
        1
    Return2legacy  
       2016-08-07 07:29:14 +08:00 via Android   1
    其实最烦的是只开一个分支,然后一个 PR 就推一堆上去,而且可能还在不断更新,然后还叫你自己看着用。
    sox
        2
    sox  
       2016-08-07 08:33:07 +08:00 via Android   1
    代码风格这个只能靠 linter 解决吧
    clino
        3
    clino  
       2016-08-07 08:36:47 +08:00 via Android   1
    你自己多注意一下原作者用的编程规范吧
    其实经验越多一般对这些方面会更注意
    我曾经对一个 patch 做 code review 做了快 20 次才过
    fcicq
        4
    fcicq  
       2016-08-07 08:45:49 +08:00   1
    有耐心慢慢改就好, 但是不要触及对方的耐心极限(提交讨论的次数 /频率可能有不成文的限制), 能一次改好的不要改两次. 多人管理的项目可能需要私下先疏通征求意见避免彻底失去 merge 的希望. 而对大型的项目做贡献有折腾好几年的准备也就可以了.
    raincious
        5
    raincious  
       2016-08-07 08:51:05 +08:00   1
    如果你要修 Bug 的话,为了整洁应该一个 Bug 一个 Bug 的修复,不要一次改动太多代码,否则 Review 起来别人也头疼。
    eloah
        6
    eloah  
    OP
       2016-08-07 09:58:17 +08:00 via Android
    @Return2legacy 我都有好好说明改动和为什么改动的,这样的话可以吗
    eloah
        7
    eloah  
    OP
       2016-08-07 09:58:35 +08:00 via Android
    eloah
        8
    eloah  
    OP
       2016-08-07 10:00:31 +08:00 via Android
    @clino 可能也是自己经验不足......平时代码很多都是写给自己看的,不太注意
    eloah
        9
    eloah  
    OP
       2016-08-07 10:02:34 +08:00 via Android
    @fcicq @raincious 非常感谢
    airyland
        10
    airyland  
       2016-08-07 10:11:56 +08:00   1
    1.看 contribution 规范(其中也包含了代码规范)
    2.先沟通再 PR ,这个很重要,不要浪费彼此时间
    3.先 rebase 不要多个 commit 甚至 conflict
    4.commit 写有意义的,不要写 "update index.html", 要写英文
    5.新特性请补充 demo(如果有的话),补充 test(如果有的话)
    6.修改的话不要重开 PR ,不要重开 PR , 不要重开 PR !!!自行 squash
    7.作者提出修改意见时,请及时更新

    暂时想到就这么多。。
    kn007
        11
    kn007  
       2016-08-07 10:14:23 +08:00   1
    用英文,作者要是有对 PR 什么建议,合理照做就是了。
    Return2legacy
        12
    Return2legacy  
       2016-08-07 11:00:21 +08:00 via Android
    @eloah 每个 commit 有必要说明这是提高效率,如你所说的第二条和 5 楼所说的,每条 commit 尽量针对单一问题,或者说单一特性,精炼但不繁复,因为要顾及到后期维护, revert 也好什么也好,能易操作的。每个 PR 要有条理,然后就是代码质量问题了。
    sox
        13
    sox  
       2016-08-07 13:54:54 +08:00 via Android
    @eloah eslint 什么的
    JamesRuan
        14
    JamesRuan  
       2016-08-07 17:45:51 +08:00   1
    哈哈,我的 github 项目就见过一次 PR ,把我激动地不行了。
    然后我依然是: If you ...... I will be happy to merge 。

    实在是发 PR 的人的代码质量和我的要求差别太大,两个来回后我就受不了了,直接在他的基础上自己手动改了 merge 了完事。
    eloah
        15
    eloah  
    OP
       2016-08-07 21:47:30 +08:00
    @airyland @kn007
    非常感谢
    eloah
        16
    eloah  
    OP
       2016-08-07 21:48:05 +08:00
    @sox 好的,我去查查
    顺便,你的 id......
    eloah
        17
    eloah  
    OP
       2016-08-07 21:48:34 +08:00
    @Return2legacy 好的,明白啦,非常感谢
    eloah
        18
    eloah  
    OP
       2016-08-07 21:49:29 +08:00
    @JamesRuan 这样不太好吧,对于我这样的萌新来说被 merge 了还是很兴奋很有成就感的啦,噗
    kn007
        19
    kn007  
       2016-08-07 21:51:14 +08:00
    @eloah 哈,主要是曾经一次,作者说:
    Thanks! Can we change it to this:
    ```
    code
    ```

    我看了是更加规范的代码,然后就照改了。。。
    关于     帮助文档     自助推广系统     博客     API   span class="snow">   FAQ     Solana     2949 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 12:20 PVG 20:20 LAX 04:20 JFK 07: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