He heredado una base de código bastante grande de otros desarrolladores, con código almacenado en varios repositorios git.grep para cosas en múltiples repositorios git
A veces, es difícil saber en qué proyecto podría estar contenido un código en particular, o si ese fragmento de código existe incluso en git.
Lo que quiero poder hacer es grep TODOS los proyectos para una determinada pieza de texto.
estoy usando gitosis, por lo que todos los repositorios Git se almacenan en/home/git/repositorios con una estructura como:
/home/git/repositories
|- project1
|- HEAD
|- branches
|- config
|- description
|- hooks
|- info
|- objects
|- refs
|- project2
|- ...
He intentado hacer un grep recursivo para la materia en los directorios de objetos de esta manera:
grep -Hr "text" /home/git/repositories/*/objects
esto no funciona como pretendo, por supuesto, porque los objetos se almacenan en formato personalizado de git.
¿Qué hacer?
Si usted está buscando un pedazo de código en particular, a diferencia de texto en un mensaje de confirmación, también puede usar 'git log -S" "' aquí. Se llama [búsqueda de pico]. (Http://gitfu.wordpress.com/2008/06/03/the-pickaxe-finding-changes-was-never-easier/) –
Christopher
el problema es que las carpetas en/home/git/repositorios no son realmente árboles de trabajo git así que git grep no funciona en ellos. – jdeuce
@python_noob git grep funciona en un repositorio simple si especifica una referencia (p. Ej., HEAD) –