V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zcdll
V2EX  ›  开源软件

如何正确的使用+参与一个开源项目?

  •  
  •   zcdll · 2018-05-22 11:30:53 +08:00 · 3180 次点击
    这是一个创建于 2386 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题

    例如一个文档或者接口管理工具,一开始找到这个项目的时候,可能可以满足需求,但是有一些细节需要修改,这个时候就要分情况了。

    1. 这个需求对他人也有用,那我可以提一个 pull request 贡献代码。
    2. 这个需求可能对他人无用,只是跟手头的项目紧耦合,但需要修改一下项目的源码。注意:当这个需求完成后,我已经修改了源码。

    然后,这样的情况可能会有不少,假设现在修改了一二十个文件,1000 来行代码。

    现在,这个开源项目发布了一个大版本。之前一直没有从 Git 更新过这个开源项目,只有本地的修改。

    现在我要更新这个大版本吗?

    又要分情况了:

    1. 这个大版本没有什么新颖的功能,现在的版本能满足需求,那就不更新了。
    2. 这个大版本有几个大的新功能,想要用在手头的项目中。那我要怎么更新呢?直接拉下来代码的话,肯定会有冲突,而且可能不太好解决。

    我能想到的办法是,自己建一个本地分支,给手头公司的项目用,master 始终保持和这个开源项目的 master 分支同步。然后合并的时候一点一点做。。。

    不知道各位大佬平时是怎么做的?

    3 条回复    2018-05-23 11:19:02 +08:00
    Arnie97
        1
    Arnie97  
       2018-05-23 00:54:45 +08:00 via Android
    合并上游修改确实比较头疼,随着上游的更新不断 git pull --rebase 可能会比一口气合并大版本简单点…
    param
        2
    param  
       2018-05-23 02:36:53 +08:00 via Android
    如果是自用的话,就应该 fork 一份出来修改了吧。修改的过程中注意一下兼容,用扩展的方式来修改,只加功能不减功能。修改的时候保持最少的修改量。合并上游难不难,取决与你修改的代码数量。一二十个文件,1000 来行代码,如果都是在上游代码中直接修改而不是新增的话,合并起来就很头疼了。
    zcdll
        3
    zcdll  
    OP
       2018-05-23 11:19:02 +08:00
    @Arnie97 之前是要么基本不改代码只提 bug,issue,要么是用当前版本基本不更新了,虽然缺乏经验,不太懂 git 的某些操作。。。我这次可以试试,看看能不能总结出个 123
    @param 我写前端,貌似 重写 这个概念不深,面向对象用的少,一般都是功能代码。。。不过幸好要写一个 typescript 的项目了,这次试试。这次尽量用新增的方式试试。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1529 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:13 · PVG 01:13 · LAX 09:13 · JFK 12:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.