Estoy trabajando en un repositorio git que contiene una gran cantidad de archivos cambiados b/w uno se compromete con otro, cómo extraer el número de cambios de archivos b/w comete.Cómo encontrar el número de archivos cambiados de una confirmación a otra en git
Respuesta
La herramienta git whatchanged
muestra un resumen de los archivos que se han modificado. Por sí mismo enumera todas las confirmaciones, pero también se puede limitar a sólo la reciente n se compromete:
git whatchanged -1
Contar archivos:
git whatchanged -1 --format=oneline | wc -l
Ver git help whatchanged
para details.
tenga en cuenta que esto siempre contará los archivos más uno, porque el '--format = oneline' incluye commit-hash/header. – c00kiemon5ter
@Cook: Sí, buen punto. –
'git whatchanged -1 --format = oneline | cola -n +2 | wc -l' –
uso esto:
git log --oneline --name-status <HASH> -1
por ejemplo:
$ git log --oneline --name-status bb3ae49 -1
M .vim/spell/en.utf-8.add
M .vim/spell/en.utf-8.add.spl
funciona igual que el
git whatchanged --oneline --name-status <HASH> -1
Esta debería ser la respuesta aceptada, ya que se desaconseja usar 'git whatchanged'. –
Además de los métodos mencionados anteriormente que puede hacer esto también:
git diff HEAD^..HEAD --name-only
- dará la lista de ficheros cambiados entre HEAD
y uno de revisión antes de cabeza (HEAD^
). Puede reemplazar HEAD^
con un SHA1 del "de" comprometerse y HEAD
con el SHA1 de la "a" comprometerse:
git diff <SHA1-of-from-commit>..<SHA1-of-to-commit> --name-only
Así que si canalizar la salida a wc -l
que debe darle el número de archivos cambiado entre commits.
Mucho más útil para poder contar archivos entre confirmaciones arbitrarias, no solo los archivos cambiados en una única confirmación. Tenga en cuenta que también funciona con nombres y etiquetas de ramas (y, por supuesto, otras combinaciones de atajos, además de HEAD y HEAD ^) –
git show --stat
Esto da la lista de ficheros cambiados de esta manera:
1 archivo cambiado, 1 de inserción (+), 1 eliminación (-)
Opcionalmente se puede añadir el código de cometer si no No quiero obtener la información de la última.
git show --stat {commit code without brackets}
en Windows:
git whatchanged -1 --format=oneline | find /v /c ""
La pieza específica de Windows importante es que debe reemplazar el comando wc utilizado en otras soluciones con esto:
| find /v /c ""
- 1. git marcan archivos sin cambios como cambiados
- 2. Exportación/Archivado de archivos cambiados solo en Git
- 3. mover los archivos cambiados a otra sucursal para registrar
- 4. git: ¿Cómo se difieren los archivos cambiados en comparación con versiones anteriores después de un tirón?
- 5. Git commit style: ¿Todos los archivos cambiados a la vez o de uno en uno?
- 6. cómo verificar solo el conjunto de archivos cambiados a subversión
- 7. ¿Cómo veo la lista de archivos modificados para una confirmación única, en Git?
- 8. ¿Git merge vuelve a aplicar confirmaciones en otra confirmación?
- 9. Cómo mostrar la confirmación de git utilizando el número de confirmaciones desde una etiqueta
- 10. Git gancho pre-commit: obtener la lista de archivos cambiados
- 11. git - mover la rama "tag" a otra confirmación?
- 12. ¿Puedo saber el número de revisión de una confirmación?
- 13. ¿Cómo puedo hacer una confirmación de Git en el pasado?
- 14. Cómo fusionar una confirmación específica en Git
- 15. ¿Cómo respaldo una confirmación en git?
- 16. git: cómo volver a ordenar (severamente) una secuencia de confirmación
- 17. Git - algunos archivos están marcados como cambiados, pero 'git diff' no muestra nada
- 18. ¿Restaurar una confirmación previa de git?
- 19. Git - retroceso a una confirmación anterior
- 20. Repositorio Git de una máquina a otra
- 21. ¿Volver a una confirmación específica basada en la identificación de confirmación con Git?
- 22. Git excluye una confirmación en una rama
- 23. Encontrar información de etiqueta para una confirmación determinada
- 24. Egit muestra todos los archivos como cambiados
- 25. Al migrar de Subversion a Git, ¿cómo puedo encontrar un compromiso dado un número de revisión?
- 26. ¿Cómo eliminar la confirmación de git-notes?
- 27. ¿Por qué git ve archivos enteros como cambiados al copiar archivos sobre otros archivos?
- 28. ¿Cómo eliminar una confirmación de huérfano en git?
- 29. TFS: ¿cómo dectectar los archivos cambiados al cargar una solución?
- 30. cómo encontrar archivos en una rama determinada
Tal 'whatchanged' git? –
@Kerrek SB Parece una buena respuesta. ¿Por qué lo pones en un comentario y no como una respuesta? Lo siento, a veces simplemente no lo entiendo. – SteeveDroz
@Oltarus: OK, hecho :-) No parecía lo suficientemente grande como para justificar una respuesta, y no estoy seguro si realmente satisface las necesidades. Sin embargo, después de consultar algunos documentos, parece que sí. –