I'm now teaching data bases and all my students get access to a virtual machine running ubuntu. They use FTP as the main way of connecting to the server and uploading their PHP files. Last time I was told that FTP was slow as every change you made you had to open filezilla, send the file and then test if it works. So, now I'm looking for something more automatic, something like GIT where you just push to the server using git push. Any ideas what can be used?
It's likely the most simple solution would be for you to use rsync over ssh.
This requires that each user have an account on the server. For this example, assume that they're wanting to copy files from their local machine,
This will synchronize the workstation directory to the server directory.
There are many, many other options. Git is not a bad one. Using it will require a bit more training, though, as well as setup on the server.
A simple alternative, still using FTP, might be to use an FTP client which manifests as a filesystem - for example I use curlftpfs under Linux. Never looked at them, but Webdrive and FTPDrive apparently do something similar under Windows.
A couple of alternative solutions which might do something similar - Setting up the server with SAMBA (if the clients are Windows) or NFS (if the clients run Linux or similar). There is also sshfs clients.
The limitation of the above range of solutions is it is very easy to do work on the live server - which might not be ideal in a production environment.