La risposta è lì, git ti sta dicendo di recuperare prima.
Probabilmente qualcun altro ha già spinto a padroneggiare e il tuo impegno è dietro. Quindi devi recuperare, unire il changeset, e poi sarai in grado di spingere di nuovo.
Se non lo si (o, peggio ancora, se lo si forza usando l'opzione --force
), è possibile modificare la cronologia del commit.
EDIT: approfondisco l'ultimo punto, dato che un ragazzo qui ha dato il consiglio molto cattivo di usare l'opzione --force
.
Poichè git è un DVCS, idealmente molti altri sviluppatori stanno lavorando sullo stesso progetto come voi, usando lo stesso repository (o un fork di esso). Se si sovrascrive forzatamente con il changeset, il repository non corrisponderà a quello degli altri, perché "hai riscritto la cronologia". Renderai le altre persone infelici e il deposito ne risentirà. Probabilmente anche un gattino al mondo piangerà.
TL; DR
- Se si vuole risolvere, prendere prima (e quindi unire).
- Se si desidera hackerare, utilizzare l'opzione
--force
.
Hai chiesto il primo, però. Vai per 1) sempre, anche se userai sempre git da solo, perché è una buona pratica.
stesso problema: D – core114