Quando faccio un git status
ottengo un elenco di file con prefisso new file:
. Come posso ottenere solo questa lista? Voglio elaborare questi file in un semplice ciclo in un piccolo script di shell.git: elenca solo i nuovi file
risposta
vorrei usare qualcosa come git status --porcelain | grep "^A" | cut -c 4-
Sono passati anni, ma questo non funziona più per me (l'output di 'git status' è probabilmente cambiato). ** MODIFICA: ** Bah. Non l'ho aggiunto/impegnato. È la prova del tempo! – Hendy
È possibile utilizzare stato git --short per ottenere l'elenco dei file.
Questo non dovrebbe essere trascurato. – jarederaj
Non usare grep per analizzare l'uscita git. Git quasi certamente ha le cose che stai cercando built-in (tranne se stai andando per cose davvero avanzate).
È possibile utilizzare git diff
per mostrare le modifiche. --name-only
mostra solo i nomi dei file. --diff-filter=A
elenca solo i file aggiunti.
Se vuoi vedere i nuovi file che hai già aggiunto all'indice usa --cached
, altrimenti omettalo. Per vedere sia diff a HEAD
.
I comandi appaiono così:
git diff --name-only --diff-filter=A --cached # All new files in the index
git diff --name-only --diff-filter=A # All files that are not staged
git diff --name-only --diff-filter=A HEAD # All new files not yet committed
diff-filter è in realtà la strada da percorrere :) –
È abbastanza spiacevole che l'OP non accetti questa risposta, come a mio modesto parere, hai completamente ragione. :) –
Invece di analizzare l'output di "git status", è probabilmente più elegante di utilizzare
git ls-files -o --exclude-standard
Come con git status
, ls-files
produrrà uscita relativo al la tua directory di lavoro corrente.
Si potrebbe desiderare di includere l'opzione --full-name
:
git ls-files -o --exclude-standard --full-name
OP chiesto di elencare nuovi file e questa risposta non richiede altri programmi per il pipe l'output a. Ho trovato su mac git diff non ha funzionato con i filtri come previsto mentre questo faceva :) –
Questo è chiaramente il vincitore. Funziona su nuove directory contenenti tutti i nuovi file. – Ali
Tuttavia, si noti che questo non funziona da sottodirectory. Ho finito per usare 'git diff' per far funzionare il mio script da ogni directory nel repository: ' $ git diff --name-only --diff-filter = A HEAD' –
Elenco dei nuovi file o per ottenere i file da aggiungere a git, può essere ottenuto utilizzando git status e il comando grep come git status -s | grep ??
[email protected]:~/project-repo-directory# git status -s | grep ??
?? src/.../file1.js
?? src/.../file2.js
?? src/.../file3.js
....
git status | grep "new file:" | cut -c 14-
git status | grep "modified:" | cut -c 14-
- 1. git: fase solo i file nuovi
- 2. git: elenca solo i file modificati per tutte le armature
- 3. Git: elenca tutti i file tracciati
- 4. Elenca i file nel repository git locale?
- 5. Elenca solo i file in una directory?
- 6. Git aggiungi solo tutti i nuovi file, non i file modificati
- 7. Elenca i nomi di file modificati in un git stash
- 8. git elenca tutti i comandi disponibili
- 9. Elenca solo le directory padre comuni per i file
- 10. Perché git commit non aggiunge nuovi file?
- 11. Git - Aggiungi tutti i nuovi file nel repository
- 12. File batch; Elenca i file nella directory, solo i nomi dei file?
- 13. Elenca tutti i file ResourceBundle
- 14. git difftool con solo file modificati
- 15. Git: elenca tutti i file con il flag di presunzione invariata
- 16. Elenca tutti i file nell'array con gulp.src()
- 17. Elenca i file con git ls-file dalla root invece di directory di lavoro corrente
- 18. Mercurial: elenca i file "hg diff"
- 19. git: Tirando solo determinati file
- 20. Produzione di git diff per nuovi file non tracciati
- 21. Come recuperare solo nuovi dati?
- 22. Esportare/archiviare i file modificati solo in Git
- 23. è possibile `git status` solo i file modificati?
- 24. git ls-files: come identificare nuovi file (aggiunti, non impegnati)?
- 25. Rails after_initialize solo sui "nuovi"
- 26. Ottenere ANT per scp solo file nuovi/modificati
- 27. Firebase che ospita e distribuisce solo file nuovi/modificati/modificati
- 28. Rendere i nuovi file automaticamente eseguibili?
- 29. Come elaborare solo nuovi file (non elaborati) in linux
- 30. Elenca TUTTI i file che sono mai esistiti in OGNI succursale in un repository git
Hai provato 'grep'? 'stato git | nuovo file grep'. – Zeta
Sì, ma questo non mi porta i nomi di file normali. – BetaRide
Preferisco usare 'git ls-files --others --exclude-standard' (http://stackoverflow.com/a/2299448/6309) – VonC