• 对于GitHub的浅显理解-以TensorFlow项目为例


    本身并没有大型开源项目的实际参与经验,所以真的只是浅显理解

    如有问题,敬请指正。

    TensorFlow项目中,1个release对应1个tag,1个tag对应1个branch里的1个commit,1个pull request可能包含0个、1个或者多个commits

    tag和release

    项目的开发者会不断地commit,累积到一定程度,形成一个tag,相当于是一个里程碑,标记一下开发到哪了
    某些tag会变成release,相当于这个tag对应的文件可以正式发布了


    branch

    开发过程中,可能会形成分支

    有的项目里,一个release或者一个tag就是对应一个分支,比如TensorFlow和后期的Keras

    TensorFlow项目发布一个版本,就分出去一个分支,这样就可以持续维护这个发布的版本,然后master继续向前

    比如发布了一个2.6的版本(同时分支),后面发现2.6有bug,就可以在2.6的分支上维护,形成新的版本,比如2.6.1

    有的项目里,release或者tag都在master分支里,比如caffe和前期的keras
     

    pull request

    在开发过程中,可能有一些不是项目团队的贡献者,也想开发或者也想改点东西,于是有了pull request,相当于给那些项目外的开发者,把他们开发的成果合并进来

    一个常见的流程

    先 fork 别人的项目,相当于拷贝一份,不会有人直接让你改修原仓库

    clone 到本地分支,做一些修改,比如bug fix

    发起 pull request 给原项目,让他看到你修改的bug

    原项目开发人员 review 这个 bug,如果是正确的话,就会 merge 到他自己的项目中

    只有成功merge的pull request中的commits才能在原项目中查到

  • 相关阅读:
    java面试题
    java 获取 request
    经历多次面试后,来自美团面试官给我的建议(附:java岗经验分享)
    涨工资不是程序员跳槽的理由
    指挥棒:C++ 与运算符
    Typora自定义主题
    CentOS7安装maven3.8.6
    尚硅谷设计模式学习(四)工厂模式
    React 学习笔记目录
    在哪些场景下不建议自增数据库主键
  • 原文地址:https://blog.csdn.net/ytomc/article/details/126409020