Me gustaría ver todas las confirmaciones de git que afectaron las líneas actualmente x - y en uno de mis archivos. ¿Hay alguna manera de que pueda hacer eso?git log para una porción de un archivo
Respuesta
Ahora git log
soporta la opción -L
como git blame
. Esto fue agregado en Git v1.8.4.
-L <start>,<end>:<file>
-L :<regex>:<file>
Trace the evolution of the line range given by "<start>,<end>" (or
the funcname regex <regex>) within the <file>. You may not give any
pathspec limiters. This is currently limited to a walk starting from a
single revision, i.e., you may only give zero or one positive revision
arguments. You can specify this option more than once.
Realmente no es la respuesta a su pregunta, pero puede usar git blame <file>
y preguntarle a la persona que escribió las líneas que le molestan.
Puede utilizar git blame
con la opción -L:
-L <start>,<end>
Annotate only the given line range. <start> and <end> can take one of these forms:
number
If <start> or <end> is a number, it specifies an absolute line number (lines count from 1).
/regex/
This form will use the first line matching the given POSIX regex. If <end> is a regex, it will search starting at the line given by <start>.
+offset or -offset
This is only valid for <end> and will specify a number of lines before or after the line given by <start>.
por lo que será algo parecido a continuación:
git blame -L 40,60 foobar
Tenga en cuenta que la culpa git muestra la última revisión para cada línea. También puede probar con la opción --reverse
:
--reverse
historia Walk adelante en lugar de hacia atrás . En lugar de mostrar la revisión en la que apareció una línea, muestra la última revisión en la que ha existido una línea. Esto requiere un rango de revisión de como START..END donde existe la ruta a la culpa en START.
http://www.kernel.org/pub/software/scm/git/docs/git-blame.html
probablemente Puede utilizar también
gitk foobar
Esto solo muestra el cambio. Creo que estamos buscando algo como git-log pero para un cierto rango de línea. –
- 1. Con git, ¿cómo se busca un patrón de archivo con `git log` en lugar de una ruta de archivo?
- 2. Git pull change log
- 3. git log de una sola revisión
- 4. git-log en eshell
- 5. Ejecutar `git log` en una rama remota
- 6. GIT Log o Commit Monitor
- 7. Diferencia entre git-log y git-whatchanged?
- 8. ¿Cómo puedo borrar el archivo log log?
- 9. ¿Se puede obtener una diferencia de palabras con `git log`?
- 10. Matplotlib: Dibuje una flecha vertical en un gráfico log-log
- 11. Git log sin clonar el repositorio?
- 12. git log desde ayer para los días laborables
- 13. Merge GIT branch without commit log
- 14. ¿Por qué no funciona "git log - foo" para el archivo eliminado foo?
- 15. Git-Diff vs. Git-log? ¿Cual es la diferencia?
- 16. ¿Cómo ejecuto git log para ver los cambios solo para una rama específica?
- 17. ¿Cómo actualizar 'git log' después de 'git svn fetch' en un repositorio desnudo?
- 18. El uso de comodines en ruta git log
- 19. ¿Cómo modifico una porción de un vector en Clojure?
- 20. Usar el comando "log" de git en otra carpeta
- 21. ¿Por qué git log no está configurado de forma predeterminada en el registro de git --follow?
- 22. Límite de referencias que se muestra con git log --decorate
- 23. ¿Cómo hacer que git log no solicite continuar?
- 24. ¿Cómo usaría una porción hash para inicializar un hash almacenado en una estructura de datos?
- 25. Incluir submódulo los mensajes de confirmación con "git log"
- 26. Obtenga una porción de una matriz asociativa de Javascript?
- 27. Eliminar un archivo existente de un Git Repo
- 28. Git: excluir un archivo con git clean
- 29. Archivo SQL SQL Tempdb LOG creciendo
- 30. Uso de Git para crear un archivo de archivos modificados
¿Por qué quieres hacer eso? –
Tengo un código que no tiene ningún sentido. Quiero ver cómo terminó en su estado actual. Hubo una gran cantidad de compromisos con este archivo y la mayoría de ellos no tocan las líneas en cuestión. No quiero ver los 500 commits para encontrar los 4 que importan. – JonDrnek
Esta es una pregunta interesante, y yo mismo la iba a preguntar, pero me di cuenta de que no hay una forma sensata de definir "línea" en el contexto. En el contexto de la exploración/edición de archivos, una línea se define por su número de línea. Pero tan pronto como un archivo tiene n líneas añadidas, entonces cada línea posterior se convierte en la línea x + n, y su registro está fuera de control. Puede haber una manera inteligente de seguir líneas a través de la historia, pero sería bastante intensivo computacionalmente, creo. – naught101