美文网首页
pull request 知乎上的一篇解释,很清楚

pull request 知乎上的一篇解释,很清楚

作者: 麦子时光_新浪 | 来源:发表于2019-08-15 09:18 被阅读0次

    作者:匿名用户

    链接:https://www.zhihu.com/question/21682976/answer/20835845

    来源:知乎

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    1,090 人赞同了该回答

    我尝试用类比的方法来解释一下 pull reqeust。想想我们中学考试,老师改卷的场景吧。你做的试卷就像仓库,你的试卷肯定会有很多错误,就相当于程序里的 bug。老师把你的试卷拿过来,相当于先 fork。在你的卷子上做一些修改批注,相当于 git commit。最后把改好的试卷给你,相当于发 pull request,你拿到试卷重新改正错误,相当于 merge。

    当你想更正别人仓库里的错误时,要走一个流程:

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

    clone 到本地分支,做一些 bug fix

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

    原仓库 review 这个 bug,如果是正确的话,就会 merge 到他自己的项目中

    至此,整个 pull request 的过程就结束了。

    理解了 pull request 的含义和流程,具体操作也就简单了。以 Github 排名最高的https://github.com/twbs/bootstrap为例说明。

    1. 先点击 fork 仓库,项目现在就在你的账号下了

    2. 在你自己的机器上 git clone 这个仓库,切换分支(也可以在 master 下),做一些修改。

    ~  git clone https://github.com/beepony/bootstrap.git~cdbootstrap~  git checkout -b test-pr~  git add .&&git commit -m"test-pr"~  git push origin test-pr

    3. 完成修改之后,回到 test-pr 分支,点击旁边绿色的 Compare & pull request 按钮

    4. 添加一些注释信息,确认提交

    5. 仓库作者看到,你提的确实是对的,就会 merge,合并到他的项目中

    以上就是 pull reqesut 的整个流程,希望对你有帮助~

    参考文档:

    Fork A Repo - User Documentation

    Using pull requests

    Creating a pull request

    编辑于 2016-01-01

    ​赞同 1.1K​​55 条评论

    ​分享

    ​收藏​感谢收起​

    王赟 Maigo

    机器学习算法日语等 6 个话题的优秀回答者

    350 人赞同了该回答

    我从单纯的语言学角度解释一下为什么“pull request”这个词组这么令人费解。

    先说正确的理解:pull request是一个request,它的目的是让别人pull你的东西。

    然而pull和request两个名词直接相连构成偏正短语,二者之间具体是什么关系是不确定的。

    思考:water hose, rubber hose, fire hose, garden hose 这四个短语中,两个词之间分别是什么关系?

    我第一次看到pull request这个词组的时候,误以为这个request的目的是请求别人允许自己pull别人的东西。

    另外,pull和request还都有动词义,放到一起的时候,还可能被误解成动宾短语(pull作动词,request作名词)。

    英语中很多单词有多种词性,另外对一串名词直接相连构成词组的句法又比较宽容,这两个性质容易被滥用,造成沟通上的不便。

    恰好汉语也具有这两个特点——你把上文中的“pull request”都换成“拉取请求”,看看是不是依然成立?

    当然,熟悉了GitHub的工作流程后,你可能就不再感觉pull request这个词组有歧义或是费解了。

    这是专业知识消除歧义的典型例子。

    编辑于 2018-07-02

    ​赞同 350​​53 条评论

    ​分享

    ​收藏​感谢

    匿名用户

    199 人赞同了该回答

    有一个仓库,叫Repo A。你如果要往里贡献代码,首先要Fork这个Repo,于是在你的Github账号下有了一个Repo A2,。然后你在这个A2下工作,Commit,push等。然后你希望原始仓库Repo A合并你的工作,你可以在Github上发起一个Pull Request,意思是请求Repo A的所有者从你的A2合并分支。如果被审核通过并正式合并,这样你就为项目A做贡献了

    相关文章

      网友评论

          本文标题:pull request 知乎上的一篇解释,很清楚

          本文链接:https://www.haomeiwen.com/subject/vnrajctx.html