Stow can do that if you only need files to be replaced, not sections of files. Let's say you want to manage the file ~/test/.gitconfig, you can create this structure:
That helps thanks. So note for now I just copy/update my entire gitconfig and replace the one off changes every so often.
Its not ideal but each difference is really an entire file. I worded my question poorly in that regard but i'll have a look at dotdee.
I'm somewhat tempted to just use m4 for generating the dot files for things that may change and doing a conf.d type setup that just lets me copy a fragment file into place then instantiate the file.
[0] - https://launchpad.net/dotdee [1] - https://pypi.python.org/pypi/update-dotdee