files - git remove file from add



Git: elenca solo i file "non tracciati"(anche i comandi personalizzati) (6)

La risposta accettata si blocca sui nomi di file con spazio. Non posso commentare (basso punteggio di stackoverflow fino ad ora), e non sono sicuro di come aggiornare il comando alias, quindi metterò qui la versione migliorata:

git ls-files -z -o --exclude-standard | xargs -0 git add

https://ffff65535.com

C'è un modo per usare un comando come git ls-files per mostrare solo i file non tracciati?

Il motivo per cui lo sto chiedendo è perché io uso il seguente comando per elaborare tutti i file cancellati:

git ls-files -d | xargs git rm

Mi piacerebbe qualcosa di simile per i file non tracciati:

git some-command --some-options | xargs git add

Sono stato in grado di trovare l'opzione -o per git ls-files , ma questo non è quello che voglio perché mostra anche i file ignorati. Sono stato anche in grado di elaborare il seguente comando lungo e brutto:

git status --porcelain | grep '^??' | cut -c4- | xargs git add

Sembra che ci debba essere un comando migliore che posso usare qui. E se non c'è, come posso creare comandi git personalizzati?


Penso che questo farà la stessa cosa del manifesto originale inteso:

git add .


Quando cerchi i file da aggiungere potenzialmente. L'output di git show fa ma include anche molte altre cose. Il seguente comando è utile per ottenere lo stesso elenco di file ma senza tutte le altre cose.

 git status --porcelain | grep "^?? " | sed -e 's/^[?]* //'

Questo è utile quando combinato in una pipeline per trovare i file che corrispondono a un modello specifico e poi piping quello per git add .

git status --porcelain | grep "^?? "  | sed -e 's/^[?]* //' | \
egrep "\.project$|\.settings$\.classfile$" | xargs -n1 git add

Se vuoi solo rimuovere i file non tracciati, fai questo:

git clean -df

aggiungi x se vuoi includere anche i file specificatamente ignorati. Io uso git clean -dfx molto durante il giorno.

Puoi creare git personalizzato semplicemente scrivendo uno script chiamato git-whatever e averlo sul tuo percorso.


Tutto è molto semplice

Per ottenere l'elenco di tutti i file non tracciati usa lo stato di comando git con l' opzione -u (--untracked-files)

git status -u

git add -A -n farà quello che vuoi. -A aggiunge tutti i file non tracciati al repository, -n rende un dry-run cui l'add non viene eseguito ma viene fornito l'output di stato elencando ogni file che sarebbe stato aggiunto.





git-ls-files