本文是“Git进阶系列”的第三篇,将介绍pull request这一对大型和小型开发团队都很有帮助的超棒特性。Pull request不仅改进了评审和反馈过程,还有助于跟踪和讨论代码变更。最后重要的一点是,pull request是向其他没有写访问权限的代码库贡献内容的理想方式。 首先需要知道,pull request不是Git核心特性。相反,是由使用的Git托管平台提供的,GitHub、GitLab、Bitbucket、AzureDevops以及其他平台都提供类似的内置功能。 在我们讨论如何创建完美的pull request的细节之前,先来讨论一下为什么需要这个特性。 假设我们刚刚完成软件的一个新特性,也许之前一直在特性分支中工作,因此下一步将是将其合并到主线分支( 不过如果代码变更稍微复杂一点,并且希望其他人能够检查这部分工作,该怎么办呢?这就是pull request的目的。有了pull request,可以邀请其他人来评论所作的工作并给出反馈。 一旦创建了pull request,就可以和其他开发人员讨论相关代码。大多数Git托管平台允许其他用户在此过程中添加评论以及提出建议,当评审人员批准后,就可以将其合并到另一个分支中。 评审工作流并不是创建pull request的唯一原因。如果想对其他没有写访问权限的代码库做出贡献,用pull request就会很方便。想想所有的开源项目,如果你有一个新特性的想法,或者如果想提交一个补丁,pull request是一个很好的方式来展示想法,而不必加入这个项目并成为主要贡献者。 这就引出了一个与pull request紧密相关的话题: fork。 fork是现有Git代码库的个人副本。回到之前关于开源的示例,第一步是创建原始代码库的副本(fork),之后就可以在自己的个人副本中更改代码。 一旦完成,就可以创建一个pull request,要求原始代码库的维护者采用你的更改。维护者或其他主要贡献者可以检查相关代码,然后决定是否采用。 如前所述,pull request并不是Git的核心特性。相反,每个Git平台都有自己的设计以及关于pull request如何工作的想法。这些设计在GitLab, GitHub, Bitbucket等平台上看起来都不太一样,每个平台都有略微不同的工作流,用于跟踪、讨论和审查更改。 无论使用什么代码托管服务,Tower Git客户端这样的桌面GUI能够提供一致的用户界面,让这一切都变得更容易。 尽管如此,一般的工作流程都差不多,包括以下步骤: 我们看看pull request本身,以及如何创建让其他开发人员的生活更轻松的请求。首先应该简短,以便快速审阅,当面对3000行代码而不是30行代码时,就很难理解代码了。 其次,确保添加良好的、不言自明的标题和有意义的描述。试着描述做了哪些更改,为什么创建pull request,以及这些更改对项目的影响。大多数平台都允许添加屏幕截图来帮助展示这些变化。 一旦变更被批准,你(或具有写访问权的人)就可以将分支合并到主分支中。但是,如果审阅者不想在当前状态下合并pull request,该怎么办?嗯,你可以等会儿,也可以将新的提交推送到那个分支上,这样现有的pull request也会更新。 此外,维护者或其他具有写访问权限的人可以在不想合并更改时拒绝pull request。 如你所见,pull request是与其他开发人员沟通协作的好方法。通过让其他人检查所作的工作,可以确保只有高质量的代码进入代码库。 如果想更深入了解高级Git工具,可以免费查看“Advanced Git Kit[3]”: 这是关于分支策略、交互式Rebase、Reflog、子模块等主题的短视频集合。什么是Pull Request?
为什么需要创建pull request?
master
分支或main
分支)。在某些情况下,比方说你是项目中唯一的开发人员,或者有足够的经验并确定团队成员不会提出异议,那么直接合并一点问题都没有。用fork工作
让审阅者的生活更轻松: 如何创建一个优秀的pull request
批准、合并还是拒绝?
开发人员的安全网
本文由 mdnice 多平台发布
本文链接:https://my.lmcjl.com/post/1738.html
4 评论