git-open already had great support for GitHub, so I was already using it for my open source projects. It also supports BitBucket and GitLab. But I wanted to use it for my day job, where all my repositories are hosted in VSTS.
What is git-open?
git-open is a nifty tool that
will let you run a command on the command-line,
git open, to open up a
web browser to your Git repository hosting provider. This means that I can
run a single command, right from within my Git repository, and it will open up
a browser and navigate to my project in Visual Studio Team Services.
This is amazing because as much as I try to hang out in the command-line, that's not always useful for large projects. If I'm hacking on my (comparatively) little open source project, libgit2, it's easy enough to use ctags or to grep over the whole codebase. But for a big project that's not so easy.
What I really want is to use the great Roslyn-powered code search functionality in VSTS. So now I can open up a new browser pointing at VSTS without having to click around to get a new browser window open.
It will even look at the current branch that you're on and navigate there in the browser interface. This is perfect if you're starting your branch workflow by creating a new branch from a VSTS work item.
When I start my branch workflow this way, I've always got a branch on the
server that I fetch to my client. And then I can push my changes back and
eventually open a pull request. And
git open supports this workflow
beautifully, it will look at the branch that I have checked out locally
and try to navigate me there in the web browser. It can navigate to branches
in Git repositories hosted in several hosting providers, including VSTS and
But it's not just branches - it can also navigate to the work item hub.
This gives you a complete end-to-end branch workflow: create a new branch
from a work item in VSTS, pull it down, and then you can use
git open --issue
to navigate back to the VSTS work items in your browser.
To get started with git-open, all you have to do is
download the latest release, unzip it and then
git-open shell script somewhere in your path.
git has an extension model where all the commands you run - say
git pull -
are actually separate commands. They're not all just built in to the git
command itself. When you run
git pull, git goes looking for an executable
in your path named
So if you want to add your own Git commands, you can just put an executable
git-something into your path. When you run
git something, Git will
I have a directory in my home directory where I put useful shell scripts that I make sure is included in my path. On Unix systems this is
~/bin. On Windows machines, this is
I also manage all these scripts - along with my dotfiles - in a Git repository. So when I start working on a new machine, I can just
git clonemy dotfiles repository.