2012-07-14 18 views
5

Quando si elimina un file (o rinominarlo) utilizzando mv, rm o qualche altra struttura, il file mostra come eliminati quando faccio git status:Come rimuovere i file cancellati da .git?

# Changes not staged for commit: 
# (use "git add/rm <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# deleted: ../src/main/..../myFile.java 

Prima di creare un commit, è ingombrante da fare git rm <file> per ogni file, in particolare in quanto non vi è alcun completamento automatico nel terminale per un file che non è presente.

C'è un modo più breve per rimuovere i file eliminati dal set di file tracciati da git?

Grazie

+0

Normalmente faccio solo una copia e incolla su un editor di testo e poi lo trovo e lo sostituisco per raggrupparlo in un colpo solo. –

risposta

4

Credo git add -u farà ciò che si desidera, dalla documentazione:

-u 
--update 
    Only match <filepattern> against already tracked files in the index 
    rather than the working tree. That means that it will never stage new 
    files, but that it will stage modified new contents of tracked files 
    and that it will remove files from the index if the corresponding file 
    in the working tree have been removed. 

Riferimento: http://git-scm.com/docs/git-add

1

Non è esattamente quello che hai chiesto, ma si potrebbe provare git commit -a. Dalla documentazione:

Tell the command to automatically stage files that have been modified 
and deleted, but new files you have not told git about are not affected. 
2

Sì, git add -u dovrebbe fare il trucco (aggiorna l'indice con tutti i modifiche/cancellazioni). Se hai già aggiunto il file con il suo nuovo nome file, vedrai anche la rinomina in git status.

3

Quando si eliminano alcuni file, ricordarsi di aggiungere "un" parametro in commit:

$ git commit -am 'Message' 

"a" rimuoverà automaticamente i file dal repository

1

La mia risposta in realtà non affrontare la questione specifica, ma ...

Nota che a differenza di alcuni altri VCSes, in Git, il comando git rm rimuove il file sia dall'indice e l'albero di lavoro a meno che detto altrimenti (utilizzando l'opzione da riga di comando --cached). Quindi ti consigliamo di cancellare i tuoi file tracciati usando git rm in primo luogo: avrai il completamento del tuo nome di file funzionante e non dovrai più fare confusione con la sincronizzazione dello stato dell'indice con la struttura di lavoro.

+0

Vero, ma a volte rinominare i file da un editor di testo. Poiché il file può trovarsi in profondità all'interno di un albero, digitando 'git rm' e il percorso completo del file potrebbe richiedere più tempo. – axel22

+0

'git mv' nel tuo caso, ma sì, altrimenti sono d'accordo. – kostix

Problemi correlati