def clean_destination(dest)
      cached = @git.ls_files(dest)

      if @handler
        cached.select! do |file|
          results = @handler.on_precheck_delete?(file)
          # a file gets removed if there are no results or any result is false
          results.empty? || results.inject(&:&)
        end
      end

      @git.remove(*cached)
    end
def clean_destination(dest)
      cached = @git.ls_files(dest)

      if @handler
        cached.select! do |file|
          results = @handler.on_precheck_delete?(file)
          # a file gets removed if there are no results or any result is false
          results.empty? || results.inject(&:&)
        end
      end

      @git.remove(*cached)
    end
remove files that are already cached in the destination directory
 or have return false when passed to {Handler#precheck_delete?}