Hits represent the total number of requests made to the server during the given time period (month, day, hour etc..).
Files represent the total number of hits (requests) that actually resulted in something being sent back to the user. Not all hits will send data, such as Not Found requests and requests for pages that are already in the browsers cache.
Visits occur when some remote site makes a request for a page on your server for the first time. As long as the same site keeps making requests within a given timeout period, they will all be considered part of the same Visit. Since only pages will trigger a visit, remotes sites that link to graphic and other non- page URLs will not be counted in the visit totals, reducing the number of false visits.