Git-FTP
Uses Git to upload only changed files to FTP servers
...It keeps track of the uploaded files by storing the commit id in a log file on the server. It uses Git to determine which local files have changed. You can easily deploy another branch or go back in the Git history to upload an older version. git-ftp was not designed as centralized deployment tool. While a commit is being pushed and uploaded to the FTP server, all files belonging to that revision must remain untouched until git-ftp has successfully finished the upload. Otherwise, the contents of the uploaded file will not match the contents of the file referenced in the commit.