¿Hay alguna forma de configurar git para bloquear un file cuando un usuario trabaja en él?

En TFS, cuando un usuario trabaja en una class, otro usuario no puede trabajar en ella. ¿Hay alguna configuration para que Git haga este trabajo o no?

No. Tal característica iría completamente en contra del principio distribuido de Git.

En mi experiencia, si tienes dos personas trabajando en el mismo file, una de dos cosas sucederá cuando vayas a fusionar:

  1. No hay conflictos de fusión porque ha estado trabajando en áreas separadas del código. Continua. Este es el caso habitual.
  2. Hay conflictos de fusión y debe resolverlos manualmente. La comunicación entre los dos committers suele ser esencial.

No, eso es totalmente Git, es por eso que para mejores prácticas deberíamos hacer commits frecuentes y tomar tiradas para actualizar nuestro repository.

Cualquier conflicto al fusionar el código se debe resolver después de verificar compromisos previos en la misma línea de código y necesita una comunicación.

Habiendo dicho todo eso,

Gitolite es una extensión que le permitirá imponer un control de acceso detallado en sus repositorys y files.