mam kilka (10-15) lokalnych repozytoriów git gdzieś na moim systemie plików, ale wszystko w folderze/data/git: Znajdź wszystkie uncommited locals repo w drzewie katalogów
chcę znaleźć wszystkie/dowolny folder, który zawiera niezmienione zmiany. Jak mogę to zrobić? Coś w rodzaju rekurencyjnego globalnego wariantu git status
.
Wszystkie odpowiedzi są złe, myślę. Każde polecenie git działa tylko w folderze, który jest pod kontrolą git. Potrzebuję czegoś do wyszukania takich folderów.
Zamiast więc napisałem ten skrypt, który wykonuje to:
#!/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
nie wolno używać git-status. Zamiast tego użyj plików git-ls i git-diff/git-diff. –
Co jest nie tak ze statusem git? – Bombe
git-status to tak zwana porcelana, która przeznaczona jest dla użytkownika, a nie dla skryptów. Jego wydajność może ulec zmianie bez powiadomienia. –