๐Ÿš Recursively find all git repos with uncommited or unpushed changes:

find . -type d -iname '.git' -exec sh -c 'cd "${0}/../" && git status | grep -q -E "(diverged|Changes|is ahead of)" && pwd' "{}" \;

In case if you forgot to push something before changing a laptop (or a company).