public engine code, private game code, git repositories, projectsXsolutions, how to?
I would recommend you to build up a nice directory tree for your project like one in Doom 3 ( see it on github - game sources and engine are lying near, but separately ).
And use one private repo.
Also making a .dll from your engine is a good idea to keep things clean.
I'm using this scheme and it allows me to keep all things close enought but not mixed together. I think that you will feel the need to change some code in your 'engine' part periodically ;) And you will have all by your hands to do it quickly.
P.S.
GIT is a great tool
Another option, is the CMake environment I provided in my articles or something similar. I have two projects going, one for the tutorial articles which exist on Google code and a private repository on GitHub. When I pull the github repository it pulls the submodule for the Google code at the same time. Of course when I want to work on tutorial code, I go straight to the Google code repository which has no links to the private repository. Unfortunately the Google code contains all the CMake which does 'refer' to the private items in which case I simply use: "IF( EXISTS myPrivateDirectory )" to control if it is part of the generated solutions.
In this way the primary working environment is public and I can use it in writing articles and sharing while the private items are obviously maintained privately. But, the whole thing is unified such that the private code is simply an extension of the public code. This makes it easy to maintain both public and private portions since I don't have to worry about divergent codebases given that the public is just a subset of the private.
And I agree with Ash: GIT rules. :)