¿Por qué este flujo de trabajo de git está causando problemas?

Estoy tratando de usar git en un proyecto de equipo con otra persona. Intento utilizar solo el mínimo, ya que esta es la primera vez que la otra persona usa git. Como tal, ambos nos comprometemos a dominar. Sin embargo, el problema que ocurre es cuando ambos nos comprometemos

(O / M es origen / maestro A / M y B / M son twigs maestras individuales de las personas)

El problema que ocurre es en la siguiente situación,

O/M -- ---- / \ A/M --/ \ \ B/M ---- ----- 

A realiza algunos cambios y los retrotrae a Origin / Master. Al mismo time, B realiza algunos cambios y extrae los cambios del origen / maestro, comprometiéndolos si es necesario. Después de este punto, B no puede volver a enviar los commits a master.

Por lo que yo entiendo, para get los cambios de A, B solo necesita search y fusionar desde el maestro, lo que se hace mediante git pull. Sin embargo, después de hacer git pull , cada vez que el bash de empujar después da un error diciendo que lea la nota sobre forwards rápidos. La nota sobre los forwards rápidos en help solo dice "fetch and merge", por lo que no entiendo por qué esto no funciona.

Las twigs maestras de A y B están configuradas para rastrear origen / máster.

Este flujo de trabajo debe funcionar como se describe. use git log y gitk para comparar la historia que A y B están viendo. Parece que algo es realmente sospechoso con los repositorys