how does git work??