ich ein paar haben (10-15) von lokalen git Repositories irgendwo auf meinem Dateisystem, aber alle in den Ordner/data/git: Alle Uncommited Einheimischen repos in einem Verzeichnisbaum
Ich möchte alle finden/Alle Ordner, deren Änderungen aufgehoben wurden. Wie kann ich das machen? Wie eine rekursive globale git status
Variante.
Alle Antworten haben es falsch, denke ich. Jeder Git-Befehl funktioniert nur innerhalb des Ordners, der sich unter git control befindet. Ich brauche etwas, um nach solchen Ordnern zu suchen.
Anstatt also schrieb ich dieses Skript, das dies tut:
#!/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
nicht git-Status Verwenden Sie. Verwenden Sie stattdessen git-ls-Dateien und git-diff/git-diff-Dateien. –
Was ist los mit Git-Status? – Bombe
git-status ist so genannt Porzellan und es bedeutete für den Benutzer, und nicht für das Scripting. Die Ausgabe kann sich ohne vorherige Ankündigung ändern. –