簡體   English   中英

Git顯示分支中所有未合並更改的差異

[英]Git display diff of all unmerged changes in branch

我想刪除我在本地擁有的一些舊分支,但在我確定這些分支中的更改不是我想要保留的更改之前。

如果我錯了,請糾正我,但我認為這樣做的一個好方法是檢查它是否包含尚未添加到 master 分支的任何內容。 所以我想顯示這些更改。

請注意,我不想僅僅做

git diff master..old_branch

因為我會得到很多噪音,包括從那時起添加到 master 的所有更改。

我也不認為我想要

git diff master...old_branch

因為,據我所知,它只顯示從 master 派生后添加到 old_branch 的提交,但不檢查這些提交是否已添加(例如,櫻桃挑選)到 master 以后。

我怎么做 ?

編輯:讓我試着重新表述我的問題,因為似乎有些混亂。 我不僅想查看提交差異,還想查看自 old_branch 從 master 創建以來添加的所有行,但不顯示此后添加到 master 分支上的行。

例如:

  • master 最初包含“abc”
  • old_branch 是從 master 創建的
  • old_branch 將內容更改為“abcdef”(添加了 d、e、f)
  • 同時master將內容更改為'abcdg'(添加d,g)

在這種情況下,我想顯示 'ef',因為 'def' 是由 old_branch 添加的,但 'd' 也被添加到主分支中,而 'g' 僅由主分支添加,因此更改在 old_branch 中且未合並到 master 中的是“ef”。

編輯2:換個角度來看:

讓我們將masterold_branch分歧的提交命名為D (即它們的共同根,或者即創建old_branch地方)

然后我想要diff(old_branch, D) - diff(master, D)

這意味着我想要old_branchD之間的所有差異,但我想忽略從old_branchD所有變化,如果它們也從masterD不同。

謝謝

如果您想查看當前不在master中的分支old_branch中的任何更改,您的第一個命令幾乎是正確的:

git diff old_branch..master

請注意兩個點與三個點。 還要注意old_branch在語句中old_branch在第一位。 如果您顛倒順序,您將獲得master而不是old_branch中更改的反向差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM