在$dayjob审查所谓的Pull Requests
摘要
一位开发者描述了他使用git命令(如range-diff和log -p)来审查pull requests的工作流程,以规避基于Web的UI的缺陷。
<p><a href="https://lobste.rs/s/6fc7qu/reviewing_so_called_pull_requests_at">评论</a></p>
查看缓存全文
缓存时间: 2026/05/17 18:21
# 关于在$dayjob审查所谓的Pull Requests
来源:https://rkta.de/dayjob-pr-review.html
## Rene Kita 的博客
博客 (https://rkta.de/index.html)关于 (https://rkta.de/about.html)RSS (https://rkta.de/feed.xml)链接 (https://rkta.de/links.html)代码 (https://git.rkta.de/)2026-01-14过去三年里,我在$dayjob花费了大量时间融入客户的团队。他们使用一款可爱的微软产品来托管Git仓库,并通过所谓的“拉取请求”(PR)#0 (https://rkta.de/dayjob-pr-review.html#0) 将更改合并到master分支。不出所料,这款微软产品的PR审查界面极其糟糕。另一个问题是,与所有基于Web的审查界面一样,在初次审查之后的迭代审查体验也很糟糕。
假设我创建了一个PR并收到了第一轮反馈,比如我在某个提交中留下了一些小瑕疵或失误。作为一位好公民 (https://sethrobertson.github.io/GitBestPractices/#sausage),我不会创建新的提交来修复这些问题,而是将这些修复归并到本应完成该提交的那个提交中。对于传统的基于邮件的流程,我会等待一段时间收集所有反馈,修正所有提交,然后发送v2版本。而对于这些基于Web的流程,我需要创建另一个PR,或者通过强制推送来替换之前的版本。强制推送后,之前的版本就消失了,作为审查者,我必须重新审查整个补丁集。
每当被指派审查某个PR时,我通常会以以下方式规避这些缺陷,前提是我的同事想要合并origin/feature分支,并且在修改提交后进行了强制推送#1 (https://rkta.de/dayjob-pr-review.html#1):
1. 从远程创建分支:`git checkout -b v1 origin/feature`
2. 审查提交:`git log -p --reverse origin/master..`
3. 提供反馈,等待同事修复
4. 拉取并从远程创建分支:`git fetch; git checkout -b v2 origin/feature`
现在,我有了v1和v2版本,就像传统流程中那样,然后可以使用git-range-diff(1)比较两个修订版本:`git range-diff origin/master..v1 origin/master..`
如果提交乱七八糟(在$dayjob我们允许在合并时压缩提交),我会使用`git diff origin/master`来代替上面`git log -p --reverse`这一步。对于补丁审查步骤(使用`git log -p --reverse`),我通常粗略浏览所有提交。如果我想添加超过一两条的评论,通常会把日志通过管道导入编辑器,以便在阅读更改时添加评论:
```
git log -p --reverse origin/master.. | sed 's/^/> /' | vim -c 'set filetype=mail' -
```
审查完成后,我只需将评论复制到Web界面中——这仍然很烦人,但稍好一些。
--0: 这个过程里并没有“拉取”(pull)操作……
1: 如果他们创建了新的PR,同样的方法也适用,只需将v2基于新PR的分支即可。
最后修改时间:2026-01-14T23:15:04Z
---
相似文章
Show HN: Codiff,本地差异审查工具
Codiff 是一款轻量级本地 diff 查看器,用于审查 Git 暂存和未暂存的更改,支持基于 LLM 的逐步讲解和内联审查评论。
@RayFernando1337: 导致用户流失的错误几乎从不出现在差异对比中,只有当你停止审查代码时才能真正捕捉到它们……
一位开发者分享了在Cursor中使用Opus 4.8 Max Thinking模型与子代理框架的工作流,并介绍了一个包含可安装技能文件的GitHub仓库,其中包含一个名为'running-bug-review-board'的技能,可进行实时QA测试。
Linear Diffs
Linear Diffs 是一项新功能,可让您直接在 Linear 中审查拉取请求。
@sashimikun_void: https://github.com/nkzw-tech/codiff… 酷炫的代码差异查看器,顺便一提……
Codiff 是一个美观的本地差异查看器,适用于 Git 仓库,具有基于大语言模型的代码讲解和行内审查评论功能,旨在简化提交前的代码审查流程。
Show HN: Haystack – 审查需要人工关注的PR
Haystack 是一个新工具,它用队列取代了 GitHub 的 PR 审查系统,将拉取请求分类为可安全合并、需要修复或需要人工审查三个类别,帮助团队应对来自编码代理的 PR 激增。