Even better (IMHO!) is `git config branch.sort -committerdate` (note the `-`). This will sort newest committer date first.
mmsc 9 hours ago [-]
`git config --global branch.sort -committerdate`
hsuduebc2 6 hours ago [-]
Thanks!
nulltrace 8 hours ago [-]
Rebase an old branch and it suddenly looks recent again. The rewritten tip gets a fresh committer date.
quuxplusone 7 hours ago [-]
Yes. This is what one wants, since if you have recently rebased it, you're clearly doing work with it. Meanwhile, branches you don't care to touch sink to the bottom of the list.
seattle_spring 5 hours ago [-]
I would hope so
pkaodev 11 hours ago [-]
I have this as an alias in my .zshrc!! Very handy
johnwheeler 6 hours ago [-]
Even better, "hey, chat GPT, list my branches by commit date."
I know that's not a popular answer, but I'm just trying to demonstrate the reality that this kind of knowledge isn't specialized anymore.
hsuduebc2 6 hours ago [-]
Heh. "Just Google it" answers we're never particular conversation lubricant as they are not now. But of course you are right we live in age of wonder once again.
amarshall 1 hours ago [-]
I rarely care about the date of the commit on the branch to determine recency, I care about when I last switched to the branch.
FYI/fwiw Fish shell autocompletes branches sorted by last commit date when writing out git commands. It also provides completions for commitish objects grouped by class, giving precedence to the usual targets first, with each group sorted by its own sort key. Handy!
rmunn 5 hours ago [-]
I have been using the `git lb` alias suggested by https://ses4j.github.io/2020/04/01/git-alias-recent-branches... (post written April 1st but not a joke) and quite enjoying it. Shows me the last 10 branches I worked on (very easy to edit the alias definition to get more or fewer than 10), sorted by date, most recent first. It's been handy in all sorts of situations, especially because one of our internal libraries needs a bugfix or a new feature every 3 months or so. So every time I cd into that repo, I have no clue what I did last, but `git lb` tells me right away.
simonsaysso 1 hours ago [-]
When I get worried about my skill set or career going away from LLMs, I get hit with a post like this with huge traction describing something I’ve already found and solved for myself. It makes me realize: I’m probably ok for a while because of all these experiences and knowledge, and I’m quite shit at communicating something that’s obviously valuable to others.
This was one of the better usability changes I made to git, yes you should probably set it for yourself
Spoiler it’s fzf under the hood. But it’s perfect and simple.
dalton74 7 hours ago [-]
Our team's `git branch` output is a graveyard. Sorting by last commit would be a godsend for quickly identifying active work and stale branches.
eru 1 hours ago [-]
When I'm working on a repository where the remote is shared (like a corporate GitHub repository where not everyone has their own GitHub fork) I tend to name all my branches like 'eru/<something>'. That way I can quickly find my work, and I can also confidently delete branches without worrying about stepping on other people's toes nor being stepped on by accident. I encourage co-workers to do the same, but haven't strictly required it from team members.
tyre 3 hours ago [-]
I made a lovely little TUI for this, with Charm (https://charm.sh)
It opens a fuzzy finder window showing the branches you have in the repo, sorted by recency. Also shows the latest committer and the date. Hit enter on the one you want to swap to it.
m4rtink 6 hours ago [-]
I have been using something like this for 10+ years by this point - still wonder why it is not default or easier to do than a custom gitconfig/alias hack. :P
eru 1 hours ago [-]
Git defaults are a bit weird. You also have to enable rerere yourself, when it should be on by default.
dataflow 5 hours ago [-]
Probably because most of the time you list branches you goal isn't to discover what exists, but to find the specific one you're looking for.
fwip 5 hours ago [-]
> Just configure git branch to sort by the last commit date:
> git config branch.sort committerdate
> You can also supply this on a one-off basis as git branch --sort committerdate.
These don't seem like hacks to me. What do you have in mind?
6 hours ago [-]
cryptolobster 6 hours ago [-]
TIL Git can do this without a shell script. I’ve been manually sorting through branches like an idiot
zahlman 10 hours ago [-]
How many branches would you need to have to make this worthwhile?
jamietanna 10 hours ago [-]
At any time I'm working across 5-30 branches (some when I'm reviewing other folks' code) so it's handy to see my latest branches
spike021 8 hours ago [-]
At my current job it's fairly frequent that I have 5+ active branches open for a repo. Not ideal and that's another topic, but it is nice to be able to sort branches because of that.
eru 1 hours ago [-]
I often have a few dozen branches open at work, because I'm often waiting for reviews to go through but don't want to be blocked. I also often run little experiments in the background, like having an AI agent try to reliably reproduce a flake I saw in the CI (and then producing a fix for the reliably reproducer).
woodruffw 10 hours ago [-]
I've seen monorepos with over 10k active branches. But even at a smaller scale (10-100 branches), it becomes useful when manually stacking and/or rebasing, especially if you have a smaller terminal.
rglover 6 hours ago [-]
Nice. Will help solve some mysteries on older projects.
thr0waway001 5 hours ago [-]
nice. I made myself pretty much the same command couple years ago but called it 'latestbranches'.
mcdow 8 hours ago [-]
yep, i have a little helper in my zshrc for this sort of thing:
alias git-hot-refs="git branch --sort=committerdate | tail"
bewareofscams 11 hours ago [-]
Or just have `jj log` custom-configured.
woodruffw 10 hours ago [-]
Another useful one if you have a large number of tags and want to see the most recently created ones first:
git config --global tag.sort -creatordate
(`-creatordate` reverses the sort so that the newest come first.)
tikhonj 6 hours ago [-]
Let's sort git branches by quality, better branches towards the top, slop at the bottom.
jeffbee 8 hours ago [-]
Feels like the type of problem you could simply choose to not have in the first place (by not using git).
I know that's not a popular answer, but I'm just trying to demonstrate the reality that this kind of knowledge isn't specialized anymore.
This comment gets it correct https://news.ycombinator.com/item?id=49504860
I wrote my own version to do this nearly 10 years ago: https://github.com/amarshall/git-recent-branches
This was one of the better usability changes I made to git, yes you should probably set it for yourself
[0] - https://github.com/paulirish/git-recent
https://github.com/tyre/recent-branches
Enjoy!
It opens a fuzzy finder window showing the branches you have in the repo, sorted by recency. Also shows the latest committer and the date. Hit enter on the one you want to swap to it.
> git config branch.sort committerdate
> You can also supply this on a one-off basis as git branch --sort committerdate.
These don't seem like hacks to me. What do you have in mind?
alias git-hot-refs="git branch --sort=committerdate | tail"