2011-05-06 125 views
0

這可能是一個重複的問題,但我沒有找到確切的答案。在GIT的特定分支中查找所有提交

可以說我有2個分支br1和br2,每個分支有3個提交。

BR1

  • 提交b
  • 提交Ç

BR2

  • 犯d
  • 提交Ë
  • 提交˚F

當我從BR2合併到BR1,BR1上GIT中顯示日誌提交A,B,C,d,E,F。

可以說我有2個分支br1和br2,每個分支有3個提交。用Br 2後

BR1合併

  • 提交b
  • 提交Ç
  • 提交ð
  • 提交Ë
  • 提交˚F

有沒有一種方法可以過濾僅在br1上創建的提交? (我試過git日誌br1..br2但是有沒有其他方法?)

如果合併是快進或automerge,將GIT記錄任何合併提交? (我看到提交時有衝突,但沒有在automerge)

回答

1

分支只是一個指向特定提交的指針。所以你不能從哪個分支找出某個提交來自哪個分支。

當進行快進時,唯一改變的是某個分支指向的提交被切換,因此不會記錄額外的提交。如果您確實需要額外提交記錄,請使用git merge --no-ff

0

我不知道爲什麼這很重要,但如果是這樣,那麼你可以從br1創建一個新的分支,並使用該分支來合併br2。然後br1和br2保持不變,您可以知道哪一個包含哪些更改,而您也有一個包含兩組更改的合併分支。

BR1

  • 一個
  • b
  • Ç

BR2

  • d
  • Ë
  • ˚F

mbr1_2

  • 一個
  • b
  • Ç
  • d
  • Ë
  • f
0

git log br1..br2的問題在於它會試圖壓制提交屬於br1的提交,但所有提交都是br1的一部分,所以什麼都不會顯示。

你可以做的是在br2合併之前找到提交權; git log br1^..br2,但這隻有在br1沒有前進的情況下才有效。

一般來說,最好的辦法是找出相關的合併,並顯示合併的提交:

git log merge^1..merge^2 
相關問題