I have to agree with the article. GitHub's git tutorial is a lot more useful and easier to follow than the other git articles I found online.
My only complaint about learning git is the lack of distinction between what is a keyword and what isn't. The command line syntax is chock full of words. In particular, "upstream" was the most confusing thing for me starting out. Only much later did I realise that there was nothing special about "upstream". It's just an arbitrary name for a remote repo, but you wouldn't know that as a newbie reading these tutorials. It is only by convention that upstream has a special meaning.
Actually, @{upstream} has a special meaning, and is a refname for the current branch's upstream. For example:
# commits that are on the current branch but not upstream
git log @{upstream}..
# commits that are upstream but not on the current branch
git log ..@{upstream}
# the commit path between the current branch and upstream
# (all commits are exclusive to either branch)
git log ...@{upstream}
My only complaint about learning git is the lack of distinction between what is a keyword and what isn't. The command line syntax is chock full of words. In particular, "upstream" was the most confusing thing for me starting out. Only much later did I realise that there was nothing special about "upstream". It's just an arbitrary name for a remote repo, but you wouldn't know that as a newbie reading these tutorials. It is only by convention that upstream has a special meaning.