To (briefly) answer your questions...
- You tag commits, see here: Git - Tagging
- See above
merge
vsrebase
is well discussed in this question- A bare repository in Git just contains the versioning info that's stored in the
.git
directory within a normal repo. Try it yourselfgit init --bare bare; ls -la bare
As other has suggested, read up on Git:
I recommend Git SCM and especially the Git Book for getting started.