Qual è la differenza tra `git add .` e` git add -u`?

Supponevo che entrambi funzionassero allo stesso modo. Entrambi aggiungono ogni file all’indice. Ma sembro sbagliato.

  • Qual è la differenza tra git add . e git add -u ?

    È uno dei git getchas menzionati qui (pre Git 2.0).

    git add . aggiunge solo ciò che è lì, non ciò che è stato cancellato (se tracciato).

     git add . git commit git status //hey! why didn't it commit my deletes?, Oh yeah, silly me git add -u . git commit --amend 

    git add -A si prenderà cura di entrambi i passaggi …


    Con Git 2.0, git add -A è predefinito .

    git add è uguale a ” git add -A ” ora, così che ” git add dir/ ” noterà i percorsi che hai rimosso dalla directory e registra la rimozione.
    Nelle versioni precedenti di Git, ” git add ” usato per ignorare le rimozioni.

    Puoi dire ” git add --ignore-removal ” per aggiungere solo percorsi aggiunti o modificati in , se proprio lo vuoi.


    Avviso ( git1.8.3 Aprile 2013, per imminente git2.0 ).
    Ho modificato la mia risposta per dire git add -u . , invece di git add -u .:

    git add -u opererà sull’intero albero in Git 2.0 per coerenza con ” git commit -a ” e altri comandi.
    Perché non ci sarà alcun meccanismo per far sì che ” git add -u ” si comporti come ” git add -u . “, È importante per coloro che sono abituati a ” git add -u ” (senza pathspec) aggiornando l’indice solo per i percorsi in l’attuale sottodirectory per iniziare ad allenare le dita a dire esplicitamente ” git add -u . ” quando lo dicono prima che arrivi Git 2.0.

    Come ho detto in ” e ”

    Come dice il manuale: git add . aggiungerà tutti i file nella directory corrente, mentre git add -u . aggiungerà solo quelli già monitorati.

    git aggiungi documentaiton

     git add . 

    aggiungi tutti i file dalla directory corrente

     git add -u 

    aggiorna solo i file attualmente monitorati.