make idempotent
Conditionally manage git repositories

This makes the architect course simpler, without extra stuff hanging
around. It also gives us the ability to trivially update the class to
use git workflows if we choose to do so.