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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With