J'ai un tas (10-15) des dépôts git locaux quelque part sur mon système de fichiers, mais dans le dossier/data/git: Trouver toutes les prises en pension UNCOMMITED gens du coin dans une arborescence
Je veux trouver tous/n'importe quel dossier qui a des modifications non validées. Comment puis je faire ça? Un peu comme une variante récursive globale git status
.
Toutes les réponses se sont trompées je pense. Toute commande git ne fonctionne que dans le dossier contrôlé par git. J'ai besoin de quelque chose pour rechercher de tels dossiers.
I Ainsi, au lieu écrit ce script qui fait cela:
#!/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
Ne pas utiliser d'état git. Utilisez plutôt git-ls-files et git-diff/git-diff-files. –
Quel est le problème avec git-status? – Bombe
git-status est ce qu'on appelle la porcelaine et il signifie pour l'utilisateur, et non pour les scripts. Sa sortie peut changer sans préavis. –