Si todos los desarrolladores tienen acceso de confirmación al repositorio, no debería necesitar hacer nada especial. Sacarán los cambios del repositorio, harán sus propios cambios, se comprometerán localmente y luego volverán al repositorio público cuando tengan algo que funcione.
Si, por otro lado, tiene uno (o algunos) desarrolladores responsables de comprometerse con el repositorio, y los demás están proporcionando parches a estos. Haga que cada uno de ellos clone el repositorio en sus propias cuentas y que envíen solicitudes de extracción cuando tengan un cambio que deseen en el repositorio principal.
También es posible hacer clones específicos para trabajar en funciones específicas si lo desea. Usar el mismo flujo de trabajo con solicitudes de extracción para obtener cambios en el repositorio principal cuando se realiza la función.
Si por "Todos los desarrolladores tendrán una cuenta universal", quiere decir que todos los desarrolladores compartirán una cuenta de GitHub y aparecerán como el mismo confirmador en el repositorio, es una mala idea. Cree cuentas separadas y configúrelas como colaboradores si desea que todos tengan acceso de confirmación.
En cuanto a sus preguntas específicas:
No, use ramas para características, arreglos, etc. que requerirán más de una confirmación. Más de un desarrollador puede estar trabajando en la misma rama.
Sí, git maneja los conflictos realmente bien, por lo que no hay problemas para que las personas trabajen en el mismo archivo. Sin problemas, excepto que la resolución de conflictos no siempre es trivial si hay cambios fundamentales en un archivo que ha sido editado por más de un miembro. Sin embargo, esto no es nada que no se pueda superar hablando juntos. El control de versiones no reemplaza la comunicación.
¡Buena suerte!