ver repositorio que modificados log crear comandos comando archivos git branch

repositorio - git ver archivos modificados



¿Cómo puedo buscar las sucursales de Git para un archivo o directorio? (6)

Aunque la respuesta de @ididak es bastante buena, y @ Handyman5 proporciona una secuencia de comandos para usarla, encontré un enfoque muy restringido.

A veces es necesario buscar algo que pueda aparecer / desaparecer con el tiempo, así que, ¿por qué no buscar en todos los confirmaciones? Además de eso, a veces necesitas una respuesta detallada, otras veces solo confirmas coincidencias. Aquí hay dos versiones de esas opciones. Ponga estos scripts en su camino:

git-find-file

for branch in $(git rev-list --all) do if (git ls-tree -r --name-only $branch | grep --quiet "$1") then echo $branch fi done

git-find-file-verbose

for branch in $(git rev-list --all) do git ls-tree -r --name-only $branch | grep "$1" | sed ''s/^/''$branch'': /'' done

Ahora puedes hacer

$ git find-file <regex> sha1 sha2 $ git find-file-verbose <regex> sha1: path/to/<regex>/searched sha1: path/to/another/<regex>/in/same/sha sha2: path/to/other/<regex>/in/other/sha

Vea que utilizando getopt puede modificar ese script para alternar la búsqueda de todas las confirmaciones, refs, refs / heads, verbose, etc.

$ git find-file <regex> $ git find-file --verbose <regex> $ git find-file --verbose --decorated --color <regex>

Checkout https://github.com/albfan/git-find-file para una posible implementación

En Git, ¿cómo podría buscar un archivo o directorio por una ruta a través de varias sucursales?

He escrito algo en una rama, pero no recuerdo cuál. Ahora necesito encontrarlo.

Aclaración : estoy buscando un archivo que creé en una de mis sucursales. Me gustaría encontrarlo por camino, y no por su contenido, ya que no recuerdo cuáles son los contenidos.


Copie y pegue esto para usar git find-file SEARCHPATTERN

Imprimiendo todas las ramas buscadas:

git config --global alias.find-file ''!for branch in `git for-each-ref --format="%(refname)" refs/heads`; do echo "${branch}:"; git ls-tree -r --name-only $branch | nl -bn -w3 | grep "$1"; done; :''

Imprimir solo sucursales con resultados:

git config --global alias.find-file ''!for branch in $(git for-each-ref --format="%(refname)" refs/heads); do if git ls-tree -r --name-only $branch | grep "$1" > /dev/null; then echo "${branch}:"; git ls-tree -r --name-only $branch | nl -bn -w3 | grep "$1"; fi; done; :''

Estos comandos agregarán algunos scripts de shell mínimos directamente a su ~/.gitconfig como alias de git global .


Puede usar gitk --all y buscar los "caminos que se tocan" y los nombres de ruta que le interesan.



git log lo encontrará por ti:

% git log --all -- somefile commit 55d2069a092e07c56a6b4d321509ba7620664c63 Author: Dustin Sallings <[email protected]> Date: Tue Dec 16 14:16:22 2008 -0800 added somefile % git branch -a --contains 55d2069 otherbranch

Soporta globbing, también:

% git log --all -- ''**/my_file.png''

Las comillas simples son necesarias (al menos si se usa el shell bash) para que el shell pase el patrón glob a git sin cambios, en lugar de expandirlo (al igual que con la find Unix).


git ls-tree podría ayudar. Para buscar en todas las sucursales existentes:

for branch in `git for-each-ref --format="%(refname)" refs/heads`; do echo $branch :; git ls-tree -r --name-only $branch | grep ''<foo>'' done

La ventaja de esto es que también puede buscar con expresiones regulares el nombre del archivo.