Una volta che si spinge al repo, davvero non si vuole andare a cambiare la storia. Tuttavia, se sei assolutamente sicuro di che nessuno ha tirato/recuperato dal repository dopo il commit incriminato, hai 2 opzioni.
Se si desidera rimuovere completamente il commit (e ogni commit successivo), eseguire un git reset --hard ABC~
(supponendo che l'hash del commit sia ABC
). Quindi fare un git push -f
.
Se si desidera modificare quel commit e conservare i commit successivi, fare un git rebase -i ABC~
. Questo lancerà il tuo editor, mostrando l'elenco dei tuoi commit, a partire da quello offensivo. Cambia il flag da "pick" a "e", salva il file e chiudi l'editor. Quindi apportare le modifiche necessarie ai file e fare un git commit -a --amend
, quindi fare git rebase --continue
. Segui tutto con uno git push -f
.
Voglio ripetere, queste opzioni sono disponibili solo se nessuno ha eseguito un pull o un recupero che contiene il commit incriminato. Se lo fanno, fare questi passaggi peggiorerà le cose.
fonte
2015-06-17 13:37:23
Quindi ecco un suggerimento importante: controlla sempre i tuoi commit uno per uno prima di spingerli. SEMPRE. – ckruczek
possibile duplicato di [Rimuovi i file sensibili e i loro commit dalla cronologia Git] (http: // StackOverflow.it/questions/872565/remove-sensitive-files-and-their-commits-from-git-history) –