Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
536 views
in Technique[技术] by (71.8m points)

version control - Number of commits on branch in git

I'm writing a small script and want to know how many commits I made on a current branch since it was created.

In this example I'd have 2 commits made on child:

git checkout master
git checkout -b child
...
git commit -a
...
git commit -a

So what I want is

commit_number = ...
echo $commit_number
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Git can provide you with the number of commits without further shell scripting.

git rev-list master.. --count

rev-list (listed in git help -a) is used to work with revisions.

As master.. will list the commits from the base of master and the current branch up to the current branch, --count will give you the count of them.

If you would instead want to have the number of commits between the two revisions you would use master.... To elaborate: between as in from master to the most recent common ancestor of master and the current branch (HEAD), and up to the current branch again. If you visualize the commit history as a tree you should be able to follow the two branches from the common ancestor. master.. on the other hand will just count one of the two branches.

So whether you want to use master.. or master... depends on whether you want to know how many commits you made in your branch since you split it off (master..), or the difference between the current master and branch, the number of commits in master and the branch since the branch was split off.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...