Why Git is so complicated