As they say there, "that we’ll cover later on". :-) The key is that you can go ahead and commit right now, making a permanent,1 unchangeable copy of your temporary work state. You might start with this:
...--o--o <-- master
\
o--o--o <-- feature
and you're in the middle of working on the next commit for feature. It's not really ready yet, but you have to fix something elsewhere (in master or some other branch). So if you git add everything and git commit you get a new, permanent-but-you-want-it-to-be-temporary commit:
...--o--o <-- master
\
o--o--o--● <-- feature
Later, you come back to branch feature, which has this bad (solid black circle) commit. Now you finish the work for the commit you intended to make, and you use git commit --amend.
What git commit --amend does is to make the new commit as usual, except instead of adding it to the tip of the branch, it shoves the current commit aside:
...--o--o <-- master
\
o--o--o--o <-- feature
\
● [abandoned]
This now-abandoned commit, which is still as permanent and unchangeable as any Git commit, is no longer findable. If you look for commits starting from feature and working backwards (leftwards), you won't see it. If you look for commits starting from master and working backwards, you won't see it. The only way you can find it is to use Git's reflogs, which hang on to these abandoned commits for a while—at least 30 days, by default.
Eventually, the reflog entry or entries that are keeping commit ● around expire. At this point, the commit is unprotected from the ravaging hyenas of git gc: they will eventually find and dismember the commit, consuming it bones and all, and it will seem never to have been after all.
1As permanent as anything is in Git, that is: Git will try hard to remember it, but once there is no way to find it, such commits are collected up as garbage and thrown out. Mercurial is a bit different: permanent commits are totally and completely permanent, just like in Git, until you run hg strip, which removes them and all their descendants.