http://stackoverflow.com/questions/5059804/howt-to-tell-emacs-vc-that-i-want-a-file-to-be-managed-by-git-not-by-svn-when-the/5059848#5059848
In short: if you have a file managed by Git and several other versions systems and you want to use emacs VC shortcuts with Git, you need to edit vc-handled-backends and move Git the first one.
'(vc-handled-backends (quote (Git CVS SVN SCCS Bzr Hg Arch MCVS)))
I have also added git.el to my site-lisp
$ cp /usr/share/doc/git/contrib/emacs/git* ~/.emacs.d/site-lisp/
And then added to my .emacs
;; from git.el (complement to vc-git.el)
(require 'git)
(require 'git-blame)
(require 'git)
(require 'git-blame)
then creating a keybinding (from http://www.michael-hammer.at/blog/emacs_git/)
;keybindindings for git
(global-set-key "\C-xgs" 'git-status)
(global-set-key "\C-xgs" 'git-status)
git.el shortcuts
m - mark the file the cursor is on ATM
M - mark all files in buffer
u/DEL - unmark file below/above
R - resolve conflicts during merge
a - add file to repository
r - remove file
i - add file to ignore list
c - commit
U - Undo -> revert file
l - see log file
g - refresh the status buffer
q - quit status buffer
? - get help!
m - mark the file the cursor is on ATM
M - mark all files in buffer
u/DEL - unmark file below/above
R - resolve conflicts during merge
a - add file to repository
r - remove file
i - add file to ignore list
c - commit
U - Undo -> revert file
l - see log file
g - refresh the status buffer
q - quit status buffer
? - get help!