2014-03-29 71 views
1

我開發了一個程序來查詢特定分支的歷史記錄,從而我只想得到在該分支上執行的活動:一旦快速合併發生,如何獲得git分支(起始點)的歷史記錄

  1. 想顯示用戶在該分支上發表的評論。
  2. 其他信息。

我可以做到這一點,當我的主分支和我的功能分支(我想查詢)尚未合併。

我可以做的是,我可以像這樣在master和feature-branch之間查詢並獲取日誌。

git log master..feature-branch. 

我得到執行的活動列表。

但我的問題是,當分支中快進合併發生時,我無法查詢或獲取該分支的數據,因爲以下命令不返回任何行。

git log master..feature-branch. 

什麼都沒有返回。

我想知道是否有任何出路在Git中使用命令來查找歷史,即使快速前進合併發生。

回答

1

在git中,當分支合併到其他分支中時,分支不保持獨特的身份,無論該分支是否是快進合併。因此,根據該命令,

git log master..branch 

獲得特有的branch不會是一個可靠的,也是不可行的方法提交列表。 git中的分支只是短暫的和暫時的引用,它們實際上並沒有與提交永久關聯。

您可以做的最好的事情是非快進合併分支,這樣您至少可以確定發生分支。但除非您在該合併提交中保留分支引用或標記,否則無法使用git log命令「查詢」分支名稱以查找屬於該分支的提交。

此外,一旦分支合併爲master,所有分支的提交是再master承諾一樣,所以他們不再唯一屬於該分支。

+0

好吧,有沒有什麼方法可以知道在與master快速合併之後,在該分支上進行了多少次提交,這樣我就可以使用git log branch -N查詢最後N個日誌並獲取所有操作在該分支上執行?我的要求是通過命令或編程方式獲得在該分支上執行的活動。 – Abhishek

+0

如果你將一個分支快速合併到任何其他分支(如'master')中,那麼這兩個分支基本上共享相同的提交。再次,提交不知道任何關於分支。因此,如果您使用快進合併,則無法將一個分支與另一個分支區分開來,因爲它們都將共享完全相同的提交。 – 2014-04-01 18:06:28

相關問題