Dado un período de tiempo (por ejemplo, un día, una semana, un mes), ¿es posible enumerar todos los archivos que se modificaron? o agregado en este momento?git: enumere todos los archivos agregados/modificados en un día (o semana/mes ...)
Respuesta
que haría uso de diff para producir la lista de archivos directamente, por ejemplo:
git diff --name-only "@{3 days ago}" "@{2 days ago}"
changelog.txt
newfile.txt
En caso de que tenga curiosidad sobre qué archivo se modificó o agregó, use --name-status en su lugar:
git diff --name-status "@{3 days ago}" "@{2 days ago}"
M changelog.txt
A newfile.txt
Tenga en cuenta que la notación @ {...} puede no ser confiable -puede tener una granularidad mucho más gruesa que las confirmaciones reales- porque usa entradas de rev-log para asignar fechas a commits, y las entradas solo se agregan al rev-log para _your_ actions (y no, por ejemplo, para cada commit en un tirón). – snogglethorpe
¿Quiere decir reflog? De todos modos, gracias por el recordatorio - Lo habría usado - desde y hasta - pero eso no parece dar los resultados esperados. ¿Conoces una alternativa más confiable? – inger
Sí, reflog :) (argh, ¿por qué no puedes editar comentarios pasados 5 minutos ...) – snogglethorpe
Probar:
git log --since="2 days ago" --until="1 days ago"
Si omite --until
obtendrá los registros de los últimos dos días. También puede especificar semanas, meses, etc. También puede usar git diff con --since y --un parámetro. Trabaja un poco en el formato de salida y listo.
Tal vez esto:
git log --since="1 day ago" --name-only --pretty=format: | sort | uniq
Incluir --until
si quieres por un día, semana, etc.
Puede ahorrar un comando usando -u: 'git log --since =" 1 día atrás "--name only --pretty = format: | ordenar -u' .. Incluso pensó esto aún más complicado que un simple 'git diff' .. que OTOH, puede tener un problema con el git actual (ver los comentarios de mi respuesta). – inger
No estoy seguro sobre el uso de uniq en esta solución. Puede haber diferentes confirmaciones con el mismo número de archivos modificados, inserciones y eliminaciones, que se desvanecerán si canaliza el resultado a través de uniq. – i4h
Git whatchanged
debe darle lo que desea, enumerando qué archivos se han modificado.
Aquí hay un ejemplo usando Git fuente:
$ 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
Lo utilizo para obtener una lista limpia:
git whatchanged --since '04/14/2013' --until '05/22/2014' --oneline --name-only --pretty=format: | sort | uniq >> changedlist.txt
¿Cómo ejecutar un comando similar para ver qué archivos no han cambiado desde el 14/04/2015 hasta el 22/05/2014 o dentro de los últimos 7 días por semana? Gracias. –
He publicado una respuesta aquí: http://stackoverflow.com/questions/31443727/git-how-to-list-all-files-that-have-not-been-changed-since-a-certain-date which deals con lo contrario de lo que ha solicitado esta publicación, pero es útil. –
Aquí está uno más, sin líneas vacías:
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: enumere solo los archivos "sin seguimiento" (también, comandos personalizados)
- 2. Archivos por lotes: enumere todos los archivos en un directorio con rutas relativas
- 3. Desescalonar todos los archivos eliminados en Git
- 4. Git - Seguimiento automático de todos los archivos en un directorio
- 5. ¿Eliminar todos los archivos de git de un directorio?
- 6. Ignorar todos los archivos con el mismo nombre en git
- 7. ¿Cómo combinar todos los archivos manualmente en Git?
- 8. Mercurial: enumere archivos "hg diff"
- 9. Linux: enumere todos los administradores de ventana disponibles
- 10. Git - Agregar todos los archivos nuevos en el repos
- 11. MATLAB - enumere todos los métodos suministrados por la subclase solamente?
- 12. git commit eliminando todos los archivos en el repos
- 13. Git ¿agregar todos los archivos modificados, eliminados y sin seguimiento?
- 14. fichero Make: compilar todos los archivos .cpp a .o archivos
- 15. Git: cómo obtener todos los archivos modificados y nuevos en una carpeta o zip?
- 16. Git commit style: ¿Todos los archivos cambiados a la vez o de uno en uno?
- 17. ¿Cómo exportar todos los archivos modificados/agregados de Git?
- 18. git: ¿Cómo ignorar todos los archivos no rastreados?
- 19. git: día a día de cambios
- 20. git: muestra todos los archivos modificados entre dos commits
- 21. Git: 1.List todos los archivos en una rama, archivos 2.compare de diferente rama
- 22. ¿Cómo obtener un recuento de todos los archivos en un repositorio git?
- 23. cómo mostrar las diferencias entre algunos o todos los archivos? GIT
- 24. Git:. Cambiar el nombre o mover todos los archivos a la vez
- 25. Git buscar todos los diffs
- 26. Egit muestra todos los archivos como cambiados
- 27. Git ignora los archivos eliminados
- 28. git: ¿Cómo sobrescribo todos los cambios locales en la fusión?
- 29. Listar los archivos en un directorio y todos los subdirectorios
- 30. Ver todos los `git diffs` con vimdiff
Gracias, ¡todos por las muchas soluciones diferentes! Me gustaría aceptarlos a todos ya que todos resuelven mi pregunta. Acepto la solución de @inger porque me gusta tener el indicador modificado/agregado ... – thias
Actualmente, el estado del nombre también funciona con 'git log'. También, por favor, no los comentarios de mi respuesta, que señalan una limitación ... aclararé pronto. – inger