Это простой способ сделать такие вещи в одну строку. Мне не хватает одного последнего шага, который я добавлю, как только узнаю (если кто-то еще не знает).
Для git status
вы можете сделать:
find ./Sites -name .git | awk '{ print "git --git-dir=" $1 " --work-tree " substr($1,1,length($1) - 4) " status" }'
затем скопируйте вывод и выполните его.
Для получения полной разницы вы можете запустить:
find ./Sites -name .git | awk '{ print "git --git-dir=" $1 " --work-tree " substr($1,1,length($1) - 4) " --no-pager diff" }'
Копирование-вставка вещей, которые вы должны сделать, раздражает меня. Он также должен использовать xargs
, но Git жалуется:
find ./Sites -name .git | awk '{ print "--git-dir=" $1 " --work-tree " substr($1,1,length($1) - 4) " --no-pager diff" }' | xargs git
Если кто-то знает, как исправить ошибку git в этой последней команде, отредактируйте этот ответ.