2016-07-14 60 views
2

有沒有辦法從其他分支獲取提交數量超過分支的分支列表?如何從其他分支獲得提交數量分支的列表

考慮這個這個分支:

master 
feature/one 
feature/two 
feature/three 

功能/ *凡在同一時間從主創建。在功能/一個被創建一個新的提交。在功能/兩個創建了兩個新的提交。在功能/三個創建了三個新的提交。

比功能/二合併回主。

我在尋找方法來得到這樣的結果:(數字意味着多少的提交是支提前掌握

feature/two 0 
feature/one 1 
feature/three 3 

感謝

回答

1

你可以指望在日誌中提交數:

#! /bin/bash 
git branch \ 
| while read b ; do 
    b=${b#\* }       # Remove the current branch mark. 
    git checkout "$b" &>/dev/null 
    printf "$b " 
    git log --oneline [email protected] | wc -l 
done 
+0

能否請您澄清一下如何運行它?在Windows上? – Chatumbabub

+0

在Windows上?安裝cygwin(我不確定git-bash是否足夠)或者在MSWin中運行linux,他們說現在可能。 – choroba

+0

好的,所以這是.sh腳本? (對不起,我從來沒有使用Linux ..) – Chatumbabub

2

choroba's answer腳本應該工作,但有一個稍微好辦法,也使用腳本。

首先要認識到的是,沒有必要檢查每個分支。我們所需要的是在給定分支上「包含」(包含在內)的提交計數,它們也不在(包含在)master中,並且master..$branch語法將足以指定這些提交。

使用git log --online管道到wc -l會工作,但我們可以使用git rev-list --count直接在Git中執行此操作。

末,git branch是所謂的「瓷都」的Git命令,VS Git的「管道」命令:管道命令設計的腳本,而瓷器的人都沒有。通常,腳本可以更好地使用管道命令。獲取與管道命令分支的列表的方式略有詳細:

git for-each-ref --format '%(refname:short)' refs/heads 

把這些在一起,我們得到:

git for-each-ref --format '%(refname:short)' refs/head | 
    while read branch; do 
     printf "%s " $branch # %s just in case $branch contains a % 
     git rev-list --count master..$branch 
    done 

這實在是基本相同的事情,只是用管道命令。

相關問題