If on *nix, gnu stow + git is the holy grail (imo).
https://www.gnu.org/software/stow/
http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to...
https://www.gnu.org/software/stow/
http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to...
It's worked really well for me. Used to use stow.