¿Por qué Git requiere que tire antes de empujar?

Sigo recibiendo un post de error que dice: master-> master rechazado ("fetch first"), error al pulsar algunos refs … porque el control remoto contiene trabajo que no tienes localmente.

Solo quiero que git sobrescriba los files actualmente en el repository con las nuevas cargas, así que he estado tratando de usar git push -u origin master, pero este error sigue apareciendo. Soy nuevo para git / github. ¿Por qué está pasando esto?

Intenté fusionar los files existentes en el repository con los files en mi escritorio, pero sigo teniendo conflictos de combinación. No estoy seguro de cómo lidiar con esto.

git te dice que debes primero:

git fetch 

y después

 git add /commit /push 

fetch es similar a pull pero, tire fusionar los datos en los files de su sucursal local, get actualización solo la estructura de la sucursal y el id.

si fetch no funciona, significa que otra persona se comprometió a cambiar, y ahora su versión debe actualizarse antes de ser lanzada

Se le solicita que lo presione antes de presionar, porque alguien presionó los cambios en el server, después de su última extracción, por lo que nuestra copy local y la copy actual del server no están sincronizadas. Pulling fusionará la copy remota con la local, lo que los volverá a sincronizar y le permitirá presionar.

La razón por la que no está permitido presionar de inmediato, es que esto necesitará fusionarse y podría generar conflictos que requieren una resolución manual. Para evitar la combinación de errores y conflictos, la fusión siempre debe hacerse en el lado del cliente, nunca en el server.