Pull Request 拉取请求——这是一项对小型和大型开发团队都有帮助的强大功能。拉取请求不仅可以改进审查和反馈过程,而且还有助于跟踪和讨论代码更改。最后但并非最不重要的一点是,它是为你没有写入权限的其他存储库做出贡献的理想方式。
什么是拉取请求?
首先,要明白拉取请求并不是 Git 的核心功能。相反,它们是由你使用的 Git 托管平台提供的: GitHub、GitLab、Bit bucket、AzureDevops 和其他一些平台都内置了这样的功能。
为什么要创建拉取请求?
在我们详细了解如何创建完美的拉取请求之前,让我们先谈谈你为什么会想要使用此功能。
想象一下,你刚刚完成了软件的一项新功能。也许你一直在一个功能分支中工作,所以你的下一步是将它合并到主线分支(master或main)。这在某些情况下没有任何问题,例如,你是项目中唯一的开发人员,或者你有足够的经验并且知道你的团队成员肯定会对此感到高兴。
但是,如果你的更改有点复杂并且你希望其他人查看你的工作怎么办?这就是拉取请求的目的,通过拉取请求,你可以邀请其他人审查你的工作并向你提供反馈。
拉取请求打开后,你可以与其他开发人员讨论你的代码。大多数 Git 托管平台允许其他用户在此过程中添加评论并提出更改建议。在你的审阅者批准你的工作后,它可能会合并到另一个分支中。
但是,拥有审查工作流程并不是拉取请求的唯一原因。如果你想为你没有写入权限的其他存储库做出贡献,它们会派上用场。想想那里的所有开源项目,如果你有一个新功能的想法,或者如果你想提交补丁,拉取请求是一种很好的方式来表达你的想法,而无需加入项目并成为主要贡献者。
这将我们带到了一个与拉取请求紧密相关的主题:forks。
使用forks工作
forks是现有Git仓库的个人副本。回到我们的开源示例:你的第一步是创建原始存储库的分支。之后,你可以在自己的个人副本中更改代码。
完成后,你打开一个拉取请求,要求原始存储库的所有者包含你的更改。所有者或其他主要贡献者之一可以查看你的代码,然后决定包含(或不包含)它。
让审阅者的生活更轻松:如何创建出色的拉取请求
如前所述,拉取请求不是 Git 的核心功能。相反,每个 Git 平台都有自己的设计和关于拉取请求应该如何工作的想法。它们在 GitLab、GitHub、Bitbucket 等上看起来不同。每个平台都有略微不同的跟踪、讨论和审查更改的工作流程。
例如,像Tower Git 客户端这样的桌面GUI可以使这变得更容易:它们提供一致的用户界面,无论你使用什么代码托管服务。
话虽如此,一般工作流程始终相同,包括以下步骤:
- 如果你没有相关存储库的写入权限,第一步是创建一个分支,即你的存储库的个人版本。
- 在你的分叉存储库中创建一个新的本地分支。(提醒:拉取请求基于分支,而不是提交!)
- 在你的本地分支中进行一些更改并提交。
- 将更改推送到你自己的远程存储库。
- 使用你的更改创建拉取请求并开始与其他人讨论。
让我们看看拉取请求本身以及如何创建一个让其他开发人员的生活更轻松的请求。首先,它应该很短,以便可以快速查看。当查看 3,000 行而不是 30 行时,更难理解代码。
此外,请确保添加一个良好且不言自明的标题和有意义的描述。尝试描述什么,你变了,为什么你开拉入请求,以及如何更改影响的项目。大多数平台都允许你添加有助于演示更改的屏幕截图。
批准、合并还是拒绝?
一旦你的更改获得批准,你(或具有写入权限的人)就可以将分叉分支合并到主分支中。但是如果审阅者不想合并当前状态的拉取请求怎么办?好吧,你总是可以添加新的提交,在推送那个分支之后,现有的拉取请求就会更新。或者,所有者或其他具有写入权限的人可以在他们不想合并更改时拒绝拉取请求。
开发商的安全网
如你所见,拉取请求是与开发人员同事交流和协作的好方法。通过请其他人审查你的工作,你可以确保只有高质量的代码才能进入你的代码库。