2010-07-14 52 views
3

我有兩個分支,我正在將branch1合併到branch2中,但沒有快進。如何顯示與Git中沒有快進合併的文件?

合併後,我運行命令'git show',我只收到提交的消息(這是從不快進的合併),沒有更改的列表文件。

如何獲取合併中更改的列表文件?

解決:

當在合併後BRANCH2,我用了以下內容:

git diff HEAD~ 

返回了正確的結果。

+0

我認爲以下兩個答案都表明很難準確解釋你所要求的內容 - 它可能有助於添加一個ASCII藝術提交圖,顯示你想查看哪些提交之間的差異。 – 2010-07-15 07:52:38

+1

不要像上面那樣添加求解,而要爲自己的問題添加一個答案。你不會得到有趣的接受點,但至少人們會知道你的意圖和你找到的答案。 – 2010-08-27 14:35:23

回答

1

當branch2合併後,我使用以下內容:

git diff HEAD~ 

返回正確的結果。

1

你試過git whatchanged命令嗎? (未測試):

git whatchanged --oneline 

git whatchanged --oneline ..HEAD^ 
git whatchanged --oneline ..HEAD^2 

--oneline 

這是一起用於 「--pretty=oneline --abbrev-commit」 的簡寫。

我需要的是看到branch1中合併到branch2的所有文件。

branch2這裏可以用HEAD^2表示,HEAD的第二個父母。

至於「只是文件列表」:

git diff --name-status ..HEAD^2 

應該給你只是一個與他們相關聯的狀態文件的列表。

+0

這給了我所有提交的更改,與'git log'相同。我需要的是查看分支1中合併到分支2的所有文件。 – chafnan 2010-07-14 11:15:46

+1

@chafnan:你有沒有用'HEAD^2'(它應該代表'branch2')試試''--oneline''。看到我更新的答案。 – VonC 2010-07-14 14:21:42

0

合併後,檢查git reflog的輸出,該輸出用於跟蹤分支提示的位置。第一行應該是你的合併提交,第二行應該是合併之前的branch2。如果看起來正確的,你可以從輸出先前提交的時候可以被稱爲[email protected]{1}的第二列中看到,所以看到哪些文件被合併改變了,你可以這樣做:

git diff --stat [email protected]{1} 
+0

讓我更接近,但branch1有多個提交。如何獲得所有提交的差異? – chafnan 2010-07-14 15:53:13

+0

所以你希望看到'branch1'和'branch2'中的所有文件從發生分歧到合併時都發生了變化?如果是這樣,並假設您的分支仍然在合併提交,我想你可以用'git diff --stat $(git merge-base HEAD^1 HEAD^2) – 2010-07-15 07:23:37