微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想在本地测试的5个PR,对git命令感到困惑

如何解决我想在本地测试的5个PR,对git命令感到困惑

3个月前,有5个PR被合并到我们的存储库中。

这些PR之一引起了问题。

我希望回溯到合并每个PR的时间,在本地进行测试,并将问题归结为一个有问题的PR。我不想承诺要掌握任何东西。

所以我打算去每个PR,找到最终的SHA,然后运行:

git checkout <SHA> #checks out/downloads all work up to commit id,discards any commits made after this date locally
git checkout -b bugIsolation

我希望这项工作能/是否有一种更清洁或更佳的方法来实现?

解决方法

我想说git bisect是您要寻找的工具。您所描述的事情会稍有不同。该命令使用二进制搜索来查找引入该错误的提交,而不是像您描述的那样手动多次检出内容:

git bisect start
git bisect good <good revision>
git bisect bad <bad revision>

在这些命令之后,git会告诉您一些内容:

Bisecting: N revisions left to test after this (roughly M steps)
[d4a69a45398cf729c089087030da7d7a7a088802] <commit message>

Git将自动检出<bad revision><good revision>之间的“中间”提交。现在该轮到您检查当前修订版是否有效了。

当您发现当前版本不正确时,您将使用git bisect bad告诉git。如果当前版本良好,则使用git bisect good。重复这种行为,直到您发现一个引入该错误的提交为止。

还有一个选项可以使检查过程自动化-git bisect run就是为此目的。

完成后,您发现正在使用git bisect reset的错误提交,这将签出从等分开始的修订。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。