在GitHub上进行代码审查时,我通常喜欢在本地查看代码。 这使我可以利用我的常规开发工具进行代码导航,linting等。
给定从topic
分支到master
的拉取请求,我可以得到与GitHub上的差异相等的差异:
git diff $(git merge-base topic master) topic
为了很好地与IDE集成,我目前的工作流程如下所示:
更改我的工作树以匹配PR的提示
git checkout topic
软复位主题分支中所做的所有更改
git reset $(git merge-base HEAD master)
将所有文件添加到暂存区域(此步骤非常特定于我的设置,只需要IntelliJ在本地更改中显示新文件)
git add -A
但是,对于GitHub最近的部分PR差异,这不适用于&#34;自您上次查看&#34; 功能后的新更改(可通过网址模板获取) http://github.com/<USER>/<REPO>/pull/<PULL>/files/<START>..<END>
)
我天真的方法是简单地执行git diff <START>..<END>
,但是当master
之间的topic
合并到<START>
之间时,这不起作用和<END>
。
在这些情况下,差异包括自master
分歧后topic
分支中所做的所有更改,而我只对通过将topic
合并到{{1}中引入的更改感兴趣}}
不知何故,GitHub排除了基础分支合并引入的变化。
如何在命令行中重现?