exploring how git works under the hood