Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to output the previous git branch name?

This answer tells how to checkout to the previous branch, and helpfully explains @{-1}: https://stackoverflow.com/a/7207542/3150057

The previous branch is important if I stashed some code before changing branch, and am now thinking about working on the stash.

Is there a way to quickly see the name of the previous branch without searching git reflog show for the latest checkout: moving from foo to bar entry?


More info:

This is a solution to my forgetfulness of my previous working context, which usually happens after coming back from lunch.

git rev-parse @{-1} shows the HEAD commit of the branch that would be checked-out by git checkout - but not the branch name.

git branch --contains @{-1} will list every branch with that commit.

Listing the branch(es) with that commit as HEAD would be helpful, as it could help remind me of my previous working context, but I'm not sure how to do that.

like image 551
Henry Blyth Avatar asked Nov 04 '16 14:11

Henry Blyth


1 Answers

If you only want the name, you can use:

git name-rev $(git rev-parse @{-1}) --name-only

So for example:

$ git checkout mybranch
$ git checkout master
$ git name-rev $(git rev-parse @{-1}) --name-only
> mybranch

It is preferable to the accepted answer because it does not show "heads" in the name, so it can be chained with other git commands.

like image 189
Gabriel Furstenheim Avatar answered Sep 19 '22 09:09

Gabriel Furstenheim