Getting git-bash as shell on windows


I’m trying to get git-bash to be the shell that opens on M-x shell.

I have the following:

(setq binary-process-input t)
(setq w32-quote-process-args ?\")
(setenv "SHELL" shell-file-name) 
(setq explicit-shell-file-name "C:/Program Files/Git/git-bash.exe")
(setq shell-file-name explicit-shell-file-name)
(setq explicit-sh-args '("-login" "-i"))

Which sort of works - it opens a new git-bash window outside of emacs.

How can I get the tighter integration of a shell appearing within an emacs window?