如何直接编辑他人的 PR

有时,我们需要对别人提交的 PR 做一些小改动,以方便合并。这里介绍的是一种方法。

假设

假定您以前在 ArduPilot 的 GitHub 代码库中工作过,并在本地克隆了该代码库的 fork。

程序

首先,确定您是否已获得修改 PR 的权限。如果是,那么在 GitHub.com 上 PR 的底部,你会看到 :

"推送到 xyz 分支 用户名/ardupilot"

首先为用户名的版本库设置一个远程,在本例中我们将其称为 tempremote :

git 远程 增加 tempremote https://github./用户名/ardupilot.git

这就注定了 tempremote 指向 GitHub 上的源代码库。

提取 PR 分支 xyz 到本地计算机的存储库,以便对其进行修改:

git 取得 tempremote  xyz

会将 PR 分支复制到本地缓冲区。

然后创建本地分支 username-xyz 的副本

git 销售点 -b 用户名-xyz tempremote/xyz

然后制作修改器并提交,并在提交信息中说明修改内容。这条信息实际上会在下一步中删除,但如果将来需要重置或还原,最好还是写上一些有意义的信息。

您还应该 "压扁"(见 交互式重置:清理提交 )的提交信息,然后再推送到发起者的版本库。此时,您可以使用发起者的提交信息,也可以根据需要进行修改。此外,您还应确保整个提交符合 ArduPilot 风格指南(参见 ArduPilot 样式指南 ).

最后,您可以强制推翻原作者的 PR,使其包含您的修改:

git 推动 -f tempremote 总负责人:xyz

这些更改将反映在 GitHub 上的 PR 中。您现在可以删除您的 username-xyz 本地分支。