To my mind, the natural solution is to put git-commit.el in elpa-magit (as upstream wants) but keep the elpa-git-commit package around, empty, and with a Depends: elpa-magit (>= xxx) or even Depends: elpa-magit (== xxx) to ensure that git-commit.el is pulled in. And elpa-magit has a Breaks: elpa-git-commit (<< xxx). And maybe even a Provides: elpa-git-commit. I think this is the "approved" way to handle this sort of transition. And it maintains various invariants, like other packages can have dependencies on either, and it's possible to reverse the transition painlessly in the future if necessary.
I think. --Barak.