Sto usando Git e ho impegnato alcuni file usando
git commit -a
Più tardi, ho scoperto che un file era stato erroneamente aggiunto al commit.
Come posso rimuovere un file dall'ultimo commit?
ATTENZIONE! Se vuoi solo rimuovere un file dal tuo precedente commit, e mantenerlo su disco, leggi juzzlin'risposta poco sopra.
Se questo è il tuo ultimo commit e vuoi cancellare completamente il file dal tuo repository locale e remoto, puoi farlo:
git rm <file>
git commit --amend
Il flag amend dice a git di fare un nuovo commit, ma "unire" (non nel senso di unire due rami) questo commit con l'ultimo commit.
Come detto nei commenti, usare git rm
qui è come usare il comando rm
stesso!
Se non avete spinto le modifiche sul server potete usare
git reset --soft HEAD~1
Azzererà tutte le modifiche e tornerà ad un commit indietro
Se hai spinto le tue modifiche allora segui i passi come risposto da @CharlesB
Rimuovendo il file con rm verrà cancellato!
Stai sempre aggiungendo a un commit in git piuttosto che rimuovendo, quindi in questo caso riporta il file allo stato in cui si trovava prima del primo commit (questo potrebbe essere un'azione delete 'rm' se il file è nuovo) e poi re-commit e il file andrà.
Per riportare il file a qualche stato precedente:
git checkout <commit_id> <path_to_file>
o per riportarlo allo stato dell'HEAD remoto:
git checkout origin/master <path_to_file>
poi modifica il commit e dovresti trovare che il file è scomparso dalla lista (e non cancellato dal tuo disco!)