Quando sei un po 'fresco con Git (e DVCS in generale) e inizi a esplorare le modifiche di riscrittura della cronologia, sei sicuro se il repository è solo locale, ma potresti riscontrare problemi se lavori con i telecomandi e provi a spingere tali cambiamenti.
Una caratteristica che mi aspetto è la possibilità di abilitare una "modalità provvisoria" che mi impedirebbe sostanzialmente di fare tutto ciò che non dovrei fare ... E cosa intendo con questo? Intendo cambiamenti di riscrittura della storia per cose già spinte a un'origine. Non riesco a definirlo con precisione, ma ciò includerebbe casi come:
commit --amend
quando HEAD è già stato premutorebase
di una filiale non localereset
di un ramo che è stato spinto
Questi sono esempi di situazioni che probabilmente faranno push
fallire il prossimo (perché non sarebbe avanzamento veloce, IIRC). Ne ho fatto un po 'per caso e ho dovuto ricreare la filiale sul telecomando. E sono stato ancora fortunato a farlo abbastanza in fretta in modo che nessuno abbia tirato fuori la storia che ho riscritto.
Credo che sia possibile identificare questo tipo di modifiche e, su richiesta, impedire all'utente di apportarle. C'è forse un'opzione per quello?
In caso contrario, pensi che valga la pena tentare di crearlo? Proveresti a definire con precisione come identificare un "cambiamento pericoloso"?
--force
.