I’ve using GIT for almost a year and a half, however I know there are some tricks or even some concepts I don’t understand or even don’t know.
I’ve used SVN (actually that’s the everyday bread at my work place), mercurial, cvs and now I’m using GIT, and I can tell you, so far GIT is the best version control tool I’ve ever touched, it allows you to keep changes, branches and commits clear, however I’m not a pro with this concepts, but it’s never worthless to learn something else about the tools you’re using every day.
So I found gitimmersion.com, a learning site with labs to understand concepts and techniques about GIT, let me give you an example of what I mean before you go to this great site to learn more about this version control tool ;)
Most source control systems work with files. You add a file to source control and the system will track changes to the file from that point on.
Git focuses on the changes to a file rather than the file itself. When you say
git add file, you are not telling git to add the file to the repository. Rather you are saying that git should make note of the current state of that file to be commited later.