I've used Mercurial before but plan on switching to Git in the near future.
All of the tutorials I've seen that explain how Git works show that files are added to the stage ('git add') before each commit, regardless of whether they have been tracked before.
Mercurial also has a command that works in a similar way ('hg add'), but from what I remember, you only need to do 'add' once. For example, the steps for a new repository look something like this:
hg init hg add . hg commit "Initial commit" hg push Is this workflow possible with Git and if it isn't, what's the reason for the repeated 'git add'? Just seems unnecessary.
git adddoesn't necessarily add a file, it adds new content that isn't present in the most recent commit. In the case of a new file, the file is implicitly empty in the most recent commit.git addmoves the files from the working directory to the staging index, whether it is a new file or a modified file.