Pro Git
Pro Git John no puede presionar porque Jessica ha presionado mientras tanto. Esto es especialmente importante de entender si está acostumbrado a Subversion, porque notará que los dos desarrolladores no editaron el mismo archivo. Aunque Subversion realiza automáticamente una fusión de este tipo en el servidor si se editan diferentes archivos, en Git debe fusionar los commit localmente. John tiene que buscar los cambios de Jessica y fusionarlos antes de que se le permita presionar:
$ git fetch origin ... From john@githost:simplegit + 049d078...fbff5bc master -> origin/masterEn este punto, el repositorio local de John se ve así:
Figure 5. John’s divergent history.
John tiene una referencia a los cambios que Jessica elevó, pero tiene que fusionarlos en su propio trabajo antes de que se le permita presionar:
$ git merge origin/master Merge made by recursive. TODO | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)La fusión funciona sin problemas: el historial de compromisos de John ahora se ve así: