Dato un periodo di tempo (ad esempio un giorno, una settimana, un mese), è possibile elencare tutti i file che sono stati modificati o aggiunto in questo momento?git: elenca tutti i file aggiunti/modificati in un giorno (o settimana/mese ...)
risposta
userei diff di cedere direttamente l'elenco di file, ad esempio:
git diff --name-only "@{3 days ago}" "@{2 days ago}"
changelog.txt
newfile.txt
Se sei curioso su quale file è stato modificato o aggiunto, usa invece --name-status:
git diff --name-status "@{3 days ago}" "@{2 days ago}"
M changelog.txt
A newfile.txt
Si noti che la notazione @ {...} può essere inaffidabile, potrebbe avere una granularità molto più grossolana rispetto ai commit effettivi, poiché utilizza voci di rev-reg per mappare le date in commit e le voci vengono aggiunte solo al rev-log per _your_ azioni (e non, per esempio, per ogni commit in un pull). – snogglethorpe
Vuoi dire reflog? Comunque, grazie per il promemoria - avrei usato --since e --until ma ciò non sembra dare i risultati attesi. Conosci un'alternativa più affidabile? – inger
Sì, reflog :) (argh, perché non puoi modificare i commenti oltre 5 minuti ...) – snogglethorpe
Prova:
git log --since="2 days ago" --until="1 days ago"
Se si omette --until
otterrete registri per due giorni. Puoi anche spesare settimane, mesi, ecc. Puoi anche usare git diff con i parametri --since e --until. Lavorare un po 'sulla formattazione dell'output e il gioco è fatto.
Forse questo:
git log --since="1 day ago" --name-only --pretty=format: | sort | uniq
Includere --until
se si desidera per un giorno, una settimana ecc
È possibile risparmiare un comando usando -u: 'git log --since =" 1 giorno fa "--name-only --pretty = formato: | sort -u' .. Anche questo pensiero è ancora più complicato di un semplice 'git diff' .. quale OTOH, potrebbe avere un problema con git corrente (vedi i commenti della mia risposta). – inger
Non si è sicuri dell'utilizzo di uniq in questa soluzione. Potrebbero esserci commit diversi con lo stesso numero di file modificati, inserimenti e cancellazioni, che svaniranno se si canalizza il risultato attraverso uniq. – i4h
Git whatchanged
dovrebbe darti quello che vuoi, elencando quali file sono stati modificati.
Ecco un esempio utilizzando Git fonte:
$ git --version
git version 1.7.8.rc0.35.gee6df
$ git whatchanged --since '10/27/2011' --until '10/30/2011' --oneline
55e7c0a (squash) test for previous
:100755 100755 dbf623b... 53905a2... M t/t8006-blame-textconv.sh
2564aa4 blame.c: Properly initialize strbuf after calling, textconv_object()
:100644 100644 173f286... e39d986... M builtin/blame.c
e8e1c29 Update draft release notes to 1.7.8
:100644 100644 3045245... ddb8d37... M Documentation/RelNotes/1.7.8.txt
8debf69 clone: Quote user supplied path in a single quote pair
:100644 100644 488f48e... efe8b6c... M builtin/clone.c
Io lo uso per ottenere una lista pulita:
git whatchanged --since '04/14/2013' --until '05/22/2014' --oneline --name-only --pretty=format: | sort | uniq >> changedlist.txt
Come eseguire un comando simile per vedere quali file non sono stati modificati dal 14/04/15 al 05/22/2014 o negli ultimi 7 giorni/settimana? Grazie. –
Ho postato una risposta qui: http://stackoverflow.com/questions/31443727/git-how-to-list-all-files-that-have-not-been-changed-since-a-certain-date che si occupa con l'opposto di ciò che questo post ha richiesto ma è utile. –
Qui è uno di più senza righe vuote:
git log --after="2015-11-05T16:36:00-02:00" --before="2015-11-15T16:36:00-02:00" --pretty=format:"" --name-only | sed '/^\s*$/d' | sort | uniq -u
- 1. Git: elenca tutti i file tracciati
- 2. git elenca tutti i comandi disponibili
- 3. Elenca tutti i file ResourceBundle
- 4. Elenca tutti i thread
- 5. Elenca tutti i file nell'array con gulp.src()
- 6. git: elenca solo i nuovi file
- 7. Elenca tutti i file archiviati in un singolo commit cvs
- 8. Elenca tutti i file in un pacchetto homebrew
- 9. Elenca TUTTI i file che sono mai esistiti in OGNI succursale in un repository git
- 10. Elenca i nomi di file modificati in un git stash
- 11. Elenca i file nel repository git locale?
- 12. Elenca tutti i file che non iniziano con un numero
- 13. Elenca tutti i sottopacchetti di un pacchetto
- 14. Git:. Rinominare o spostare tutti i file in una volta
- 15. Elenca tutti i file in una directory PHP
- 16. Elenca in modo ricorsivo tutti i file su sftp
- 17. git checkout tutti i file
- 18. git: elenca solo i file modificati per tutte le armature
- 19. modifica un file in tutti i commit in git
- 20. Git: elenca tutti i file con il flag di presunzione invariata
- 21. Elenca tutti i campi in un indice elasticsearch?
- 22. Elenca tutti i thread in esecuzione/in coda in ThreadPoolTaskExecutor
- 23. Elenca tutti i test trovati da Nosetest
- 24. Elenca solo i file in una directory?
- 25. Elenca tutti i computer nella directory attiva
- 26. Scarica il repository Git senza tutti i file .git?
- 27. Django: elenca tutti i rapporti inversi di un modello
- 28. Elenca tutti i file di tutte le cartelle in un unico elenco
- 29. Rimuovere tutti i file per git commit?
- 30. Elenca tutti gli argomenti da un file CHM
Grazie, tutti per le tante soluzioni diverse! Mi piacerebbe accettarli tutti poiché tutti risolvono la mia domanda. Accetto la soluzione di @ inger perché mi piace avere l'indicatore modificato/aggiunto ... – thias
In realtà lo stato -name funziona anche con 'git log'. Inoltre, per favore, non i commenti della mia risposta, che indicano una limitazione ... chiarirò presto. – inger