gpt4 book ai didi

主题分支上的 Git diff,不包括同时发生的 merge 提交?

转载 作者:IT王子 更新时间:2023-10-29 00:43:13 24 4
gpt4 key购买 nike

假设我有以下情况:

    B---D---F---G topic
/ /
--A---C---E master

出于代码审查的目的,我想从提交 A 到提交 G 中提取差异,但不包括发生在 master 分支上的提交 E 和 C,也不包括作为 merge 提交的提交 F。

换句话说,我想生成一个差异,其中包含从 F 到 G 的更改,并将这些更改与从 A 到 D 的更改聚合。

换句话说,我希望审查差异仅包含我在主题分支中所做的更改,而不包括在此期间发生的一堆来自 master 的代码。

这可能吗?如果 git 无法处理此类“差异聚合”,如果有人可以提供一些关于某些外部命令如何执行此操作的指示(以便我可以尝试编写一个可以解决问题的 bash 脚本),我将非常感激。

最佳答案

Karl 的回答具有误导性:

git diff从不在适当的范围内工作(即多次提交),仅在两次 提交之间工作!

范围语法对 git diff 有特殊意义.

git diff E..G始终等于 git diff E G (和
git diff E...G等于git diff E G在这种情况下,因为 E 是两者之间的 merge 基础)。

git diff master...topic是您在此和一般情况下想要的:它向您显示主题分支的所有更改,将其与上次 merge 基础进行比较(即,将其与上次 merge 时的 master 进行对比) ,忽略 master 中所有后来的更改,这些更改无论如何都不在您的主题分支中)。

注意:不幸的是(巧合?)x..y 的影响在 git log等最好用 x...y 表示在 git diff反之亦然!

关于主题分支上的 Git diff,不包括同时发生的 merge 提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7488956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com