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

比较两个没有中间提交的git分支即仅可从分支访问的提交

如何解决比较两个没有中间提交的git分支即仅可从分支访问的提交

假设我在同一提交上有一个git master分支和两个功能分支(feature1,feature2):

$price = get_post_meta( get_the_ID(),'_regular_price',true);
  if { ( ' $price' <= 1000 )
         tax class = ZERO RATES; 
    elseif
    {( ' $price' > 1001 && <7500 )
         tax class= GST 12% RATES; }
    else
    {( ' $price' > 7501)
        tax class = GST 18% RATES; }

现在,我通过对master所做的更改来对Feature2分支进行重新设置:

A1 -- A2 (master)
       \
        B1 -- B2 (feature1,feature2)

然后对feature2进行一些重构(A1 -- A2 -- A3 -- A4 -- A5 -- A6 (master) \ \ B1 -- B2 (feature1) B1 -- B2 (feature2) )和其他更改(B2'):

B3

我想做的是仅从两个功能分支(而不是master分支)的内容获取差异,以便查看在feature分支而不是master上重构和更改的内容。即我想获取A1 -- A2 -- A3 -- A4 -- A5 -- A6 (master) \ \ B1 -- B2 (feature1) B1 -- B2' -- B3 (feature2) B1 -- B2间的差异。在此期间,我不关心要掌握的更改。有cmd命令吗?

解决方法

据我所知,git diff命令仅比较显式内容,没有将多个补丁组合在一起的内置方法。

您可以做的是创建一个临时分支,然后创建要比较的内容:

# for example :
git checkout feature1
git checkout -b compare1
git rebase A6
git diff feature2

构建该内容的另一种方法是在A2 A6上应用补丁feature1,或在feature2上应用反向补丁:

git checkout feature1
git diff A2 A6 | git apply

# or
git checkout feature2
git diff A6 A2 | git apply

# after inspecting the diff : discard these changes
git checkout .

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