Posted on: April 28, 2018 at 4:52 PM    

Blog written by Stacy Rendall, Principal Spatial Researcher, Interpret Geospatial Solutions

This post is part of a series which describes my development environment from high level technologies down to specific apps.  It should be of interest to anyone doing Python or web development. See the first post for a general overview of the technologies that make up this stack.

Installation instructions and configuration/settings for tools introduced in this series can be found in this Bitbucket repository.

What is version control?

You can think of version control as being a little bit like Track Changes in Word, but for code (where you will want to track the multiple files that might make up your project). Version control can be quite useful in helping you keep track of code in solo projects, but it becomes essential when you are working with a team, so that you can see who changed what and why, and manage what happens if two people made changes to the same thing.

You are probably already doing it

stacy blog second

Do you have folders like this?

If you do, then you are kind of managing your versions, but without any of the benefits of doing it properly!

How version control helps

  1. Manage your old versions, allowing you to jump back or forward at will
  2. Create branches, which are working copies of your project (while the current version is safely stored away); a branch could be used to do some testing or development, and once the changes are complete they can be merged back into the main code base (or discarded if you don't need them any more)
  3. When working in a team, version control can help you keep track of who has changed what, record why changes were made and easily manage merging changes if different people have both altered the same piece of code
  4. Remote version control repositories (e.g. Bitbucket, GitHub or Visual Studio Team Services) allow you to easily work across different computers or between different users


Git is one of the most widely used version control systems, and is relatively easy to use from the command line or various GUI tools (such as GitHub desktop or even your code editor). Git is also really well supported across, and integrated into, a wide range of development tools - for example Microsoft Visual Studio Team Services features Git as its default version control system.

stacy blog third

Git history across multiple branches

stacy blog 6dec last

Handling a merge conflict in Git with Visual Studio Code (note that different tools handle this differently) 

See the Bitbucket repository for installation instructions (via Scoop) and handy hints for using Git

Stay tuned for my next post, which will describe my preferred Windows Terminal. I welcome your feedback or comments at

stacy blog stack image2 resized