可以看官方流程:Checking out pull requests locally - GitHub Docs
当别人给你的开源仓库提交了pull request,你该怎么检查别人提交的代码是否可用,然后合并上去呢?今天我就遇到了,就在前不久开源项目douyin-live失败了,需要开启 signature字段校验,研究了两天后发现需要使用浏览器环境次啊可以搞的到这个加密的字段。但是没想到,还是广大码农厉害,提交了一个pr:
我看到之后,还需要在本地做一下验证,不能随便就合并上去啊,万一......
所以我就需要先将这个pr搞到本地,然后进行校验,所以这次这篇文章就有了,让我们开始搞吧。
如果一个 pull 请求的作者对请求没有响应或者已经删除了它们的 fork,那么该 pull 请求中提出的更改仍然可以通过一个新的 pull 请求进行合并。但是,如果希望对请求进行更改,而作者没有响应,则需要执行一些其他步骤来更新请求。
打开请求后,GitHub 将远程存储所有更改。换句话说,甚至在合并请求之前,提交请求中的提交在存储库中就是可用的。您可以获取一个打开的 pull 请求,并将其重新创建为您自己的请求。
任何人都可以使用先前打开的 pull 请求继续处理它,测试它,甚至使用其他更改打开新的 pull 请求。但是,只有具有推访问权限的协作者才能合并拉请求。
1.在您的存储库名称下,单击Issues或Pull requests。
2.在"拉请求"列表中,单击要合并的拉请求。查找非活动请求的 ID 号。这是紧跟在请求标题之后的数字序列。
- 在本地项目中打开终端,根据请求的 ID 号获取对请求的引用,并在流程中创建一个新分支:
注意:为什么要搞一个新分支呢?因为不能将这次pr合并到你本地的已经有作用的分支上了,我那一你那个分支还有用,合并上去之后如果不可用,你的代码还要回滚,多麻烦。所以需要一个新分支来单独做这次pr测试
bash
git fetch origin pull/PR的ID/head:新分支名字
4.切换到基于这个 pull 请求的新分支:
注意:这里也可以使用git checkout,作用和git switch一样,都是切换到新分支
arduino
git switch 新分支名字
此时,您可以对这个分支做任何您想做的事情。您可以运行一些本地测试,或者将其他分支合并到分支中。
5.如果本地测试没有问题,就可以在git上点击merge pull request合并到主分支了,或者你也可以单独将你本地新测试的分支推到git上。