更新したファイルだけ取得したい、という状況になり、勉強がてらgulpで書いてみました。
ただこれだと、追加したファイルが対応出来ないんですよねえ。
gulp.js
var gulp = require("gulp"),
    changed = require("gulp-changed");
paths = {
    src: "./src/**/*.+(php|js|css)",
    dest: "./dest",
    deploy: "./deploy"
}
gulp.task("deploy", function() {
    gulp.src(paths.src)
        .pipe(gulp.dest(paths.deploy));
});
gulp.task("copy", function() {
    gulp.src(paths.src)
        .pipe(changed(paths.deploy))
        .pipe(gulp.dest(paths.deploy))
        .pipe(gulp.dest(paths.dest));
});
gulp.task("watch", function() {
    gulp.watch(paths.src, ['copy']);
});
gulp.task("default", function() {
    gulp.start("deploy");
    gulp.start("watch");
});