Home How I Ended Up with VSCode as Git Client

How I Ended Up with VSCode as Git Client

This is a short story on how I gave up all other Git clients and ended up with VSCode as my everyday companion.

Relying on Many Clients

I used to install many Git clients (like SmartGit, TortoiseGit) and enjoy their unique features such as interactive rebase wizard and/or diff/merge editor. As it is not easy to develop a good enough cross platform client software a few years ago, I had to evaluate and adapt to different clients on Windows/Linux. The popularity of Electron makes it possible to write cross platform software using web technology, and the last standalone Git client I used was GitKraken, a neat client powered by Electron.

The Enterprise Trap

However, I often find it difficult to install a separate client software in a corporate network. There are far too many clients out there, but due to security policies each company is able to select just a few options and make them available to the employees to use. I was forced to use tools like SourceTree or Git Extensions or the Git client inside Visual Studio, which I really dislike. They do work in simple cases, but when I need to carefully reorganize the commits with operations such as rebase they lack clear insights into the entire commit history or interactive editor. Of course I had to abandon GitKraken because it’s not free for commercial use. Since then I started to look for good alternatives. Interestingly I didn’t realize Visual Studio Code later became my final choice. VSCode is naturally based on Electron and is installed already on all my machines, so turning itself into a good Git client makes perfect sense.

Switching to VSCode

Well, I dislike the default Git features built into VSCode, as they are not enough for a high demand user like me. By evaluating quite a few extensions, I decided to build my baseline upon Git Graph. Similar to GitKraken, Git Graph builds its features around a beautiful commit history view, so that all typical operations such as pull/push/checkout and branching can be done by just right clicking somewhere. Even cherry pick/rebase can be initialized from there. But this is the open source world, and the people behind Git Graph cannot implement everything in their spare time. Recently I added GitLens to the baseline as it adds blame related views as well as an interactive rebase editor.

The company behind GitKraken acquired GitLens recently, which isn’t a surprise. But look forward to seeing what happens next in that area.

Stay tuned as I am going to blog about how to do rebase in VSCode.

This post is licensed under CC BY 4.0 by the author.

Different Ways to Create VSCode Extension Dependencies

New Language Server and Case Study

Comments powered by Disqus.