Git Tips Slides
PageUp x2: previous · PageDown x2: next · Home: index

git log over many git repos

You have a directory called "all-repos". It contains many Git repos. Now you want to use git log -G FooBar across all of them. You only want to search for commits that were created during the last 8 months, and you want to sort the result by commit timestamp.

A bit ugly, but works:

for repo in *; do (
  cd "$repo"
  git log -G FooBar --all --pretty="%ad %h in $repo by %an, %s" \
    --date=iso --since="$(date -d "8 months ago" --iso)"
); done | sort -r | head