2016-03-03 48 views
1

我有一個分支叫development。現在我想知道每天(即)每天發生多少次提交。Git commit count count a day

我想要提交的數量(即)一天內提交的數量。

我試過這個命令,但它給所有提交的枝數

git shortlog -s -n 

我的問題是在一天提交的計數

回答

0

我已經試過:

git log | grep Date | awk'{print':「$ 4」「$ 3」「$ 6}'| uniq -c

它工作。你會得到這樣的東西:

5 : 3 Mar 2016 
    4 : 2 Mar 2016 
    8 : 1 Mar 2016 
    [...] 

我找到了命令here

+0

謝謝,它的工作,但如果我只想要一天?然後 –

+0

結合grep「你的日期」。這隻適用於特定的一天。上面的解決方案有範圍。 –

+0

這似乎是不必要的浪費,因爲它管理一個正常的,完整的'git日誌',而不是每個提交所需的最小值。另外,你不要'排序',這可能導致'uniq'返回不好的結果和/或對你尖叫,因爲作者(你在這裏顯示的)和提交日期都不需要按照時間順序排列。 –

3

試試這個:

$ git rev-list --count --since=<start-date> --before=<end-date> <ref> 

例如,爲了獲得而犯昨日在當前分支做數:

$ git rev-list --count --since=yesterday --before=today HEAD 

絕對日期也可以接受:

$ git rev-list --count --since=2016-03-02 --before=2016-03-03 HEAD 
0

這回答了你問的身份危機問題的「每日」一面,這似乎無法確定是否它希望「每一天/每一天」意味着多個或僅僅「一天」意味着單一。顯然,「每天」是「一天」的超集,所以這是一個有用的展示; grep等可以做其餘的。

短和甜:

git log --date=short --pretty=format:%ad | sort | uniq -c 

輸出示例:

 1 2017-12-08 
     6 2017-12-26 
    12 2018-01-01 
    13 2018-01-02 
    10 2018-01-14 
     7 2018-01-17 
     5 2018-01-18 

說明:

  • git log是一個先決條件,很明顯。
  • --date=short將我們的date-format設置爲YYYY-MM-DD,其(A)是我們所需要的並且(B)隨後將按照時間順序按字母順序排列sort
  • --pretty=format:%ad告訴git我們只想讓每個提交的a uthor d了我們的首選date-format是需要uniq
  • | sort,因爲它僅檢查相鄰重複吃。當然,我們幾乎可以肯定地希望在最後訂購日期。
  • | uniq -c計算每個YYYY-MM-DD的相鄰副本的數量,並將該數字預先計入日期。