Assuming all the computers you are setting this up on have accurate times, you could have it create a timestamp file for each dotfile, which just contains the local modified time of the dotfile. Then you can compare the local timestamp with the remote one.
You could also just do the commit locally and try to merge with the remote branch. If the merge succeeds then assume it's ok. If it failed then there were two different changes to the same part of a file and the conflict needs to be resolved, in which case you notify yourself somehow.
A potentially simpler and less error prone solution (because it's more manual) would be to have your dotfiles be symlinked to the dotfiles in the git. Then when you edit a dotfile the git one is updated, and you can manually commit and push the change easily.