During work  we use to have a really stressful time.
Everyone was using each other's folders
(mainly happens in new projects... and an overenthusiastic project designer).
After 3-4 accidental deletions of my project folder,
I decided to simply backing up once a day is not enough.
So I created a bash file, copy the files and committing them via git
(an excellent way to manage your source code).

If anyone wants to use it, here it is:
I created a file and wrote:

1
2
3
4
5
6
7
8
#!/bin/sh
dir1=/var/www/html/me/projects/$1/
dir2=~/backups/$2/
rsync -vurgop --max-delete=1 --exclude '.git' $dir1 $dir2
cd $dir2
git add -v --ignore-errors *
filename="Backup_"`date +%Y%m%d%H%M`
git commit -aqnm $filename
Essentially what’s going on here is that you get 2 parameters: the location of your project and the backup. In order for this to work you need to first copy your project to your backup. After that it would automatically copy every file that was changed (excluding .git) without deleting ANYTHING and committing to the git history. your project MUST USE git in order for this to work. Then I ran crontab -e and wrote there
1
*/10 * * * * ~/rsyncer.sh project project

This means run every 10 minutes the file ~/rsyncer.sh with the parameters project & project.

This might be inefficient, however it does a great job saving me rom any deletion
since my work is being saved every 10 minutes on another place.
I would love to hear about other solutions.