how does git even work?