On travis, I don't cache ~/.sbt/ghpages since the cache sometimes gets corrupted (see #40). Then, as expected ghpagesPushSite clones the repository. I found that after a fresh clone, ghpagesPushSite would never detect any changed files and would just push an empty commit. Only on the second invocation of ghpagesPushSite, it would correctly identify changes and commit them.