How does Git actually work