Ho un sacco (10-15) del repository git locale da qualche parte sul mio filesystem, ma tutti nella cartella/data/git: Trova tutti i locali pronti contro termine uncommited in un albero di directory
Voglio trovare tutti i/qualsiasi cartella che ha modifiche non salvate. Come lo posso fare? Un po 'come una variante globale ricorsiva git status
.
Tutte le risposte hanno sbagliato penso. Qualsiasi comando git funziona solo all'interno della cartella sotto controllo git. Ho bisogno di qualcosa per cercare tali cartelle.
Così, invece ho scritto questo script che fa questo:
#!/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
Non utilizzare git-stato. Utilizza invece git-ls-file e git-diff/git-diff-files. –
Cosa c'è di sbagliato in git-status? – Bombe
git-status è così chiamato porcellana e significava per l'utente, e non per lo scripting. La sua produzione può cambiare senza preavviso. –