One technique I've used in the past is to check only the modified files
into git (one might use 'got' today).
Depending on the degree of trust of where the git repo is (tightly
controlled local net vs Github), you should probably add
/etc/master.passwd and pwd.db, in fact anything with passwords, private
keys, etc. into .gitignore so they don't get revealed.
On a new machine, I'd:
cd /
git checkout .../etc_files
mv etc_files/.git etc
Then use combinations of git status, git diff OR diff ./foo
../etc_files, git restore files that you want overwritten with the value
from the previous machine, etc. Inevitably some files will change, so
commit and push again when you have a workable new system.
Remember to rm /etc_files when done.
Read "Reset, restore and revert" in the git doc before you "try this at
home, kids".
It worked OK in the absence of a dedicated tool for the job, which I
doubt anyone will actually write.
YMMV. Use at own risk. Etc.