Quando sei un po 'fresco con Git (e DVCS in generale), e inizi a esplorare le modifiche di riscrittura della cronologia, sei sicuro che il repository sia solo locale, ma potresti incontrare dei problemi se lavori con i telecomandi e prova a spingere tali cambiamenti.
Una caratteristica che mi aspetterei è la possibilità di abilitare una "modalità sicura" che fondamentalmente mi impedisce di fare qualsiasi cosa non dovrei fare ... E cosa intendo con questo? Intendo i cambiamenti di riscrittura della storia per cose già spinte a un'origine. Non riesco a definirlo con precisione, ma questo includerebbe casi come:
-
commit --amend
quando HEAD è già stato spinto -
rebase
di un ramo non locale -
reset
di un ramo che è stato premuto
Questi sono esempi di situazioni che probabilmente faranno fallire il prossimo push
(perché non sarebbe un avanzamento rapido, IIRC). Ne ho fatto un po 'per caso e ho dovuto ricreare il ramo sul telecomando. E ho comunque avuto la fortuna di farlo abbastanza velocemente da non farmi scrivere la storia che ho riscritto.
Credo sia possibile identificare questo tipo di modifiche e, su richiesta, impedire all'utente di produrle. C'è forse un'opzione per questo?
Se non c'è, pensi che valga la pena tentare di crearlo? Vorresti provare a definire esattamente come identificare un "cambiamento pericoloso"?