It should work, however you could do it in a simpler way:
directly from branch 2012B:
git fetch origin
git merge origin/2012A
Note that you are not required to have a local branch for 2012A: if have a repository in your remotes (here your remote is origin) you usually carry the snapshots of the remote branches. You can see them by running:
git branch -a
(See the remotes/... entries of the output)
The git fetch command updates the snapshots, so git fetch origin updates your local images of the remote branches in origin, and git merge origin/2012A merges such image into the current branch (i.e. applies the patches of origin/2012A on 2012B).
Suggested article:
http://longair.net/blog/2009/04/16/git-fetch-and-merge/