Git Is Simpler Than You Think
I’ve often been amused by observing one person try to explain Git to another. Everybody (well, not *everybody*) agrees that it’s a better version control system — but the lack of clear conceptual language is a huge barrier to entry.
Git’s overloaded, confusing language is absolutely the only part of it that sucks. They meant well. They chose words that sound familiar, like branch, checkout, tag, merge. But they often mean different things. Then you get the feeling that, as features were added and rethought, they just picked new unused words as they went along. Stage, fetch,rebase, remotes.