Working with a lot of git branches can be a bit of a headache. Graph
visualisations can get tangled and confusing, especially when they include more
than just the branches you care about. Sound familiar? You need git
show-branch.
I have a feature branch called stock-information on a project
that’s hosted on Heroku. I want to compare it to my main branch and to the
main branch on my staging remote:
git show-branch stock-information staging/main main
The output can be a little confusing at first, but once you learn how to read it it’s a huge time saver:
! [stock-information] WIP: Link to data series
! [staging/main] Add a description to Stock
! [main] Display Stocks
---
+ [stock-information] WIP: Link to data series
+ [stock-information~1] Create DataSeries for Stocks.
++ [staging/main] Add a description to Stock
++ [staging/main~1] Import external Stock information
+++ [main] Display Stocks
The first three lines are column headings. They show the commit at the tip of
each of the branches I specified, with a ! to indicate which column will
represent this branch in the lines that follow.
After the --- come the commits. The + characters near the start of the lines
indicate which of the branches this commit is present on.
For example, the first commit only has a + in the first column. This lines up
with the ! for stock-information in the heading section. So, we know that
this commit is on the stock-information branch but not staging/main or
main.
The third commit (“Add a description to Stock”) has a + in each of the first
two columns, which indicates it is present on the stock-information and
staging/main.
The output will end with the last commit that is present on all of the
specified branches, indicated by a + in each of the leading columns.
What’s next
If you found this useful, you might also enjoy:
- The excellent man page for
git show-branch - Remote Branch for details about fetching, rebasing, tracking, and pruning