簡體   English   中英

git多分支差異?

[英]Multi-branch diff with git?

有沒有一種簡單的方法來使用git獲得多個(兩個以上)分支之間的差異? (有點像“章魚差異”嗎?)

情況是存在一個分支(稱為分支A),這是多個其他分支(稱為B和C)與其他修改合並而成的結果。 (分支A與分支B分開,進行了許多本地修改,然后合並了分支C,接着進行了更多本地修改,然后進行了更多本地修改,然后重新合並以包括B和C分支上的更新。)

我想做的是查看分支A特有的所有本地更改-也就是說,查看分支B或分支C上沒有對分支A進行的更改。

從B創建分支“ bPlusC”,然后合並“ C”。 用“ A”表示。

git checkout -b bPlusC B
git merge --no-ff C
git checkout A
git diff bPlusC..HEAD

編輯:基於RM的評論:

如果B或C的提交不在A中,請使用以下命令:

git checkout -b bPlusC $(git merge-base A B)
git merge --no-ff $(git merge-base A C)
git checkout A
git diff bPlusC..HEAD

(發布一個選項並不能完全回答我的問題,但是我在研究過程中感到困惑。)

一種可能性是使用git log的-p(補丁)選項,該選項可以為包含和排除使用多個分支標簽:

git log -p branch_A ^branch_B ^branch_C

但是,這沒有像git diff那樣給出更改的摘要,而是給出了分支A中包含的每個提交的單獨更改,但分支B或C中沒有提供。

雖然對於獲取分支A所引入的更改的總體情況不太理想,但是當您嘗試從分支A挑選變更時,此逐次提交摘要可能會更有用。

暫無
暫無

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

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