我正在寫一個小腳本,想知道自創建以來在當前分支上提交了多少個提交。git分支提交的數量
在這個例子中我有2對的提交作出child
:
git checkout master
git checkout -b child
...
git commit -a
...
git commit -a
所以我想是
commit_number = ...
echo $commit_number
謝謝您的幫助。
我正在寫一個小腳本,想知道自創建以來在當前分支上提交了多少個提交。git分支提交的數量
在這個例子中我有2對的提交作出child
:
git checkout master
git checkout -b child
...
git commit -a
...
git commit -a
所以我想是
commit_number = ...
echo $commit_number
謝謝您的幫助。
Git可以爲您提供沒有進一步shell腳本的提交數量。
git rev-list master.. --count
rev-list
是用於與修訂工作的半隱藏(在git help
未列出的)命令。
由於master..
會列出從主站和當前分支到當前分支的提交,--count
會給你它們的計數。
如果您不想在兩個修訂版本之間提交承諾數,您可以使用master...
。詳細說明:從主人到最近的共同祖先主人和當前分支(HEAD)之間,再次到當前分支。如果你將提交歷史記錄看成一棵樹,你應該能夠跟隨來自共同祖先的兩個分支。 master..
另一方面只會計數兩個分支之一。
因此,無論你想使用master..
或master...
取決於你是否想知道你多少提交您的分支取得因爲你把它分解關閉(master..
),或當前主機和支路之間的區別,分支自分支以來,分支和中的提交數量。
這是一個比接受的答案更好的解決方案,雖然我會在committishes之前提供選項:'git rev- list --count master..' –
更好的答案,因爲它也涵蓋了非基於nix的平臺。 – gnuchu
假設你從主分支,master..yourbranch
給你的提交範圍在yourbranch
但不在主。
然後你只需要列出他們每一條線,並計算行數:
git log master..yourbranch --pretty=oneline | wc -l
更新:git的轉速名單現在有--count
:
git rev-list --count master..
年紀較大git版本:
git rev-list master.. |wc -l
rev-list l ists修訂,並且master..
提及提交,因爲當前HEAD
與master
不同。
我不得不使用這個與'git rev-list'版本兼容的舊版本,以至於他們沒有'--count'開關 –
@ChuckWilbur感謝您的評論,我在答案中加了'--count' – user1338062
[git倉庫中的提交數量]的可能重複(http://stackoverflow.com/questions/1199312/number-of-commits-in-a-git-repository) –
@ZoltanToth回答你的問題返回自創建存儲庫以來提交的數量,不是自從創建分支以來。 –
請考慮我的回答(假設更好):https://stackoverflow.com/a/47133753/931908 –