title: why do we need file name in git add command?
body: <p>I am learning Git commands.</p>
  
  <p>My understanding of git add and git commit is as follows: git add 'file name' takes snapshot of the project(entire working directory) and stage it. git commit saves the staged snapshot to the repository.</p>
  
  <p>I also understand that git differs from SVN etc in the fundamental way of saving the files. While SVN saves incremental changes in individual files, git saves snapshot of the entire working directory. If a file has not changed, git snapshot would contain a reference that file in the previous snapshot.</p>
  
  <p>I have a question here. If git add takes snapshot of entire working directory why do we need to provide individual file name in the command? Git would anyway take snapshot of entire project.</p>