2013-07-22 23 views
8

我有一個簡明命名爲feature的功能分支,它具有大約100次提交,所有提交都與某種功能相關。隨着時間的推移,這些提交全部合併到主分支中。我想列出分支上的所有提交,以便我可以將該功能重新添加到其他項目。列出主題分支中的所有提交

基本上我想在下面的圖表上提交綠點的ID。

relevant commits

我怎樣才能做到這在Git中,然後通過將gitk或類似工具和手工收集所有相關資料提交其他?

回答

3

儘管答案,並給出接受我建議這樣做更自動的方式(但它只會工作如果你沒有合併的masterfeature):

考慮以下歷史:

--A---B---C---D---E---F---G (master) 
     \ / /
     H---J-------K  (feature) 

基本上我們想要執行git log B..feature

git log --format='%H' feature..master | tail -1 | \ 
xargs -I '{}' git log '{}'^..feature 

git log --format='%H' feature..master | tail -1會發現提交給做創建feature支右後master - 這是C

C祖先 - B也將是祖先第一次提交Hfeature科。

然後xargs -I '{}' git log '{}'^..feature(即轉爲git log B..feature)只顯示可從feature到達的提交,但無法從B到達。

+2

我有一個有點凌亂的'功能'分支開始需要手工選擇開始提交,否則你的配方工作得很好。這裏是一行:'git log $(git rev-list feature..master | tail -1)^ .. feature' – sanmai

+2

請參閱[使用Git查找分支點](http://stackoverflow.com/q/ 1527234)瞭解如何查找分支起點的詳細信息 – CharlesB

6

如果你得到的具體分支的起點,例如,SHA1,試試這個:

git log --pretty=oneline SHA1^..feature 
相關問題