drop all the complicated linking and copying stuff--just make a repository called "prototype", and clone it for each new subject. for changes that should propagate to all subjects, push the changes back to the prototype repo, and (maybe via a helper script), pull those changes in to each subject's repo.
submodules may be useful for this: http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html
drop all the complicated linking and copying stuff--just make a repository called "prototype", and clone it for each new subject. for changes that should propagate to all subjects, push the changes back to the prototype repo, and (maybe via a helper script), pull those changes in to each subject's repo.
submodules may be useful for this: http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html