I removed the execute bit from *.h and *.cpp files. I committed the changed and tried to push them. The machine I was working on does not have my SSH keys, so the push failed.
I did the same on a different machine with the SSH keys, and I was able to commit and push the changes. I needed to use Updating file permissions only in git however, because Git did not observe or recognize the changed file permissions.
Now, I'm back on the original machine. I performed a git pull, but its refusing to take the changes:
$ git pull
remote: Counting objects: 2, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (2/2), done.
From https://github.com/weidai11/cryptopp
   4206b4a..f03ab5c  master     -> origin/master
Updating 4206b4a..f03ab5c
error: Your local changes to the following files would be overwritten by merge:
    cpu.cpp
    cpu.h
    cryptlib_bds.cpp
    emsa2.cpp
    emsa2.h
    salsa.cpp
    salsa.h
    serpentp.h
    sosemanuk.cpp
    sosemanuk.h
    vmac.cpp
    vmac.h
Please, commit your changes or stash them before you can merge.
Aborting
Apparently, git is too dumb to realize that the file permission is 0644 locally and 0644 remotely, so there is nothing to do.
How do I tell git there is nothing to merge?
 
     
    