Rimuovere i file dal commit di Git

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:

  1. rimuovere il file git rm
  2. fare il commit con il flag amend: 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!

Commentari (5)

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

Commentari (8)

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  <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!)

Commentari (0)