Tengo un montón (10-15) de repositorios Git locales en algún lugar de mi sistema de archivos, pero todos en la carpeta/data/git: Encuentra todos los Locales repos uncommited en un árbol de directorios
Quiero encontrar todos/cualquier carpeta que tenga cambios sin compromiso. ¿Cómo puedo hacer eso? Algo así como una variante recursiva global git status
.
Creo que todas las respuestas funcionaron mal. Cualquier comando de git solo funciona dentro de la carpeta que está bajo el control de git. Necesito algo para buscar esas carpetas.
Así que en lugar de escribir este script que hace esto:
#!/usr/bin/env ruby
require 'find'
require 'fileutils'
#supply directory to search in as argument
@pat = ARGV[0]
(puts "directory argument required"; exit) unless @pat
Dir.chdir(@pat)
Find.find(@pat) do |path|
if FileTest.directory?(path)
Dir.chdir(path)
resp = `git status 2>&1`
unless resp =~ /fatal|nothing to commit \(working directory clean\)/i
puts "#{'#'*10}\n#{Dir.pwd}#{'#'*10}\n#{resp}"
Find.prune
end
Dir.chdir(@pat)
end
end
No utilizar git-estado. Use git-ls-files y git-diff/git-diff-files en su lugar. –
¿Qué pasa con git-status? – Bombe
git-status se llama porcelana y es para el usuario, y no para el scripting. Su salida puede cambiar sin previo aviso. –