https://blog.sarbeh.com/posts/version-control-git/