Git busca una cadena en el historial de un solo archivo
Entonces, si tengo un archivo llamado foo.rb y me da un error por un método faltante llamado bar , quiero buscar en el historial de foo.rb la cadena bar
para ver si alguna vez se definió en el pasado.
Encontré esto ¿ Buscar una cadena en todo el historial de Git?
Pero esto busca en todos los archivos. Sólo quiero buscar en un archivo.
Para ello, puede utilizar la opción -S para git log:
git log -S'bar' -- foo.rb
O tal vez puedas probar este (de preguntas relacionadas Buscar cadenas en todo el historial de git )
git rev-list --all foo.rb | (
while read revision; do
git grep -F 'bar' $revision foo.rb
done
)
En realidad, buscará el contenido del archivo y no enviará mensajes/parches ante cualquier aparición de barra.
Usé
git log -S "string" --follow -p "path of file"
que muestra el historial completo de todos los cambios con esa cadena.
Como lo mencionó @Jakub Narębski, prefiero realizar una búsqueda con expresiones regulares de diferencias que contengan 'barra'
git log -G'bar' -- foo.rb