Git相对第三个分支比较两个分支

3

在与 Github/Gitlab 工作中,通常会使用功能分支,但在等待审核时,许多情况下拉取请求会过时,需要在一段时间后在新的目标分支(master)上进行 rebase。

这有时会创建需要解决的冲突。

在 rebase 后,我想比较旧和新分支与目标分支的关系,以验证在解决冲突时是否出现了错误。也就是说,我想验证合并 PR 的新版本后哪些行将发生更改。

因此,基本上我想比较 git diff branch origin/mastergit diff origin/branch origin/master 的结果 - 在 github/gitlab 的 PR 视图中,旧版本和新版本之间的差异输出发生了什么更改。

有没有命令可以做到这一点?


如果你已经将 branch 进行了 rebase,那么 git diff branch origin/branch 不就是你想要的 diff 吗? - mnestorov
不,那将包含从主分支合并到分支中的差异。 - Ákos Vandra-Meyer
1个回答

2

是的,你可以使用形式为git-diff的表单,该表单接受多个提交:

git diff <commit> <commit>…​ <commit>

来自文档

此表单用于查看合并提交的结果。第一个列出的提交必须是合并本身;其余两个或更多提交应为其父提交。

在您的情况下,您想要比较重定位后的branchorigin/master之间的合并提交与旧的origin/branchorigin/master之间的合并提交;然后比较如下:

git diff branch origin/master origin/branch

在这里,branch 是“合并提交”,而 origin/masterorigin/branch 则是它的“父提交”。

如果出现冲突,Git 将会生成以下差异:

- line in origin/master (the first "parent" commit)
- line in origin/branch (the second "parent" commit)
+ line in branch (the merge commit)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接