This blog post has moved to blog.stvjam.es

You should be redirected shortly, alternatively please click the following link

I'm feeling lucky for git command line

This short post describes using a git alias for checking out branches like “I’m feeling lucky”, ie. the first branch matching the entered text gets checked out…

This makes sense working in a ticketing system for features, with a branch per ticket policy, where branches are often named [PROJECT CODE]-[TICKET NUMBER]-[FEATURE DESCRIPTION]

Instead of typing git checkout AWSM-1234-a-fantastic-feature I just want to address it by ticket number, or any unique text combination that I know of in the feature description.

So I put together a couple of aliases that can be included in the [alias] section of your .gitconfig file to make this easy

Git Lucky!

lucky = "!f() { git branch | grep -i " $1 " | head -1 | xargs -r git checkout; }; f"

(UPDATE: on some terminal's you may need to omit the -r after xargs...)

lucky = "!f() { git branch | grep -i " $1 " | head -1 | xargs git checkout; }; f"

Using this you can check out the AWSM-1234-a-fantastic-feature branch with either

git lucky 1234

or

git lucky fantastic

Git Find

I'm pretty sure there are variants of this out there already, but this just shortcuts grokking through your branch list on your local repo to find a branch with some text

find = "!f() { git branch | grep -i " $1 "; }; f"

If I want to list all branches that contain the text 'chart' I can do git find chart and get that list

Personally this scratches an itch for me, I used to use git br | grep -i whatever and then git co, but being able to do it in one is pretty handy, and in quite a few cases, git lucky is all I need if I know something unique about the branch name.

For more info on setting up aliases and an explanation of the function syntax used for these commands, take a look at Phil Haacks great article on github flow aliases

Labels: , , ,