"git add" is used in this context to add an untracked file (like the fossil example).
git init .
vi file (initial content)
git add file
git commit -am "first commit"
vi file (make changes)
git commit -am "second commit"
Basically if you use commit -am, you never have to worry about staging - which is most of the time imo. In the rare case where you want to avoid committing something that has changed use git add to stage individual files.