Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to determine when a Git branch was created?

Is there a way to determine when a Git branch was created? I have a branch in my repo and and I don't remember creating it and thought maybe seeing the creation timestamp would jog my memory.

like image 408
paxos1977 Avatar asked Feb 12 '10 22:02

paxos1977


People also ask

How can I tell when a git branch was created?

you can try with git reflog or git show --summary command to check this. I used this below API to get the branch created date But it shows only commit date.

How do I find out when a bitbucket branch was created?

Unfortunately Bitbucket doesn't store the date that a branch is created. You may be able to find this this using some git commands.

How can I see what branches have been created on github?

If you add --sort=authorname to the above command you can get your branches grouped together.


1 Answers

As pointed out in the comments and in Jackub's answer, as long as your branch is younger than the number of days set in the config setting gc.reflogexpire (the default is 90 days), then you can utilize your reflog to find out when a branch reference was first created.

Note that git reflog can take most git log flags. Further note that the HEAD@{0} style selectors are effectively notions of time and, in fact, are handled (in a hacked sort of way) as date strings. This means that you can use the flag --date=local and get output like this:

$ git reflog --date=local 763008c HEAD@{Fri Aug 20 10:09:18 2010}: pull : Fast-forward f6cec0a HEAD@{Tue Aug 10 09:37:55 2010}: pull : Fast-forward e9e70bc HEAD@{Thu Feb 4 02:51:10 2010}: pull : Fast forward 836f48c HEAD@{Thu Jan 21 14:08:14 2010}: checkout: moving from master to master 836f48c HEAD@{Thu Jan 21 14:08:10 2010}: pull : Fast forward 24bc734 HEAD@{Wed Jan 20 12:05:45 2010}: checkout: moving from 74fca6a42863ffacaf7ba6f1936a9f228950f657  74fca6a HEAD@{Wed Jan 20 11:55:43 2010}: checkout: moving from master to v2.6.31 24bc734 HEAD@{Wed Jan 20 11:44:42 2010}: pull : Fast forward 964fe08 HEAD@{Mon Oct 26 15:29:29 2009}: checkout: moving from 4a6908a3a050aacc9c3a2f36b276b46c0629ad91  4a6908a HEAD@{Mon Oct 26 14:52:12 2009}: checkout: moving from master to v2.6.28 

It may also be useful at times to use --date=relative:

$ git reflog --date=relative 763008c HEAD@{4 weeks ago}: pull : Fast-forward f6cec0a HEAD@{6 weeks ago}: pull : Fast-forward e9e70bc HEAD@{8 months ago}: pull : Fast forward 836f48c HEAD@{8 months ago}: checkout: moving from master to master 836f48c HEAD@{8 months ago}: pull : Fast forward 24bc734 HEAD@{8 months ago}: checkout: moving from 74fca6a42863ffacaf7ba6f1936a9f228950f657 to master 74fca6a HEAD@{8 months ago}: checkout: moving from master to v2.6.31 24bc734 HEAD@{8 months ago}: pull : Fast forward 964fe08 HEAD@{11 months ago}: checkout: moving from 4a6908a3a050aacc9c3a2f36b276b46c0629ad91 to master 4a6908a HEAD@{11 months ago}: checkout: moving from master to v2.6.28 

One last note: the --all flag (which is really a git-log flag understood by git-reflog) will show the reflogs for all known refs in refs/ (instead of simply, HEAD) which will show you branch events clearly:

git reflog --date=local --all 860e4e4 refs/heads/master@{Sun Sep 19 23:00:30 2010}: commit: Second. 17695bc refs/heads/example_branch@{Mon Sep 20 00:31:06 2010}: branch: Created from HEAD 
like image 180
Aaron Avatar answered Oct 10 '22 10:10

Aaron