diff --git a/.bash_aliases b/.bash_aliases index 339f9dc..1f646f0 100644 --- a/.bash_aliases +++ b/.bash_aliases @@ -269,6 +269,10 @@ gitf () { git push -f ;; + "s") + /bin/bash ~/.local/bin/scripts/git_stats.sh + ;; + # Update all git submodules in this repo. "sd" for submodule download. "sd") # Only supports "master" as branch for now. This could cause unexpected results if a tracked submodule has a different branch or location name diff --git a/.local/bin/scripts/git_stats.sh b/.local/bin/scripts/git_stats.sh new file mode 100755 index 0000000..59e1c98 --- /dev/null +++ b/.local/bin/scripts/git_stats.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +{ + echo "# What Changes the Most" + echo "---------------------------------------" + git log --format=format: --name-only --since="1 year ago" | sort | uniq -c | sort -nr | head -20 + echo "" + + echo "# Who Built This" + echo "---------------------------------------" + git shortlog -sn --no-merges + echo "" + + echo "# Where Do Bugs Cluster" + echo "---------------------------------------" + git log -i -E --grep="fix|bug|broken" --name-only --format='' | sort | uniq -c | sort -nr | head -20 + echo "" + + echo "# Is This Project Accelerating or Dying" + echo "---------------------------------------" + git log --format='%ad' --date=format:'%Y-%m' | sort | uniq -c + echo "" + + echo "# How Often Is the Team Firefighting" + echo "---------------------------------------" + git log --oneline --since="1 year ago" | grep -iE 'revert|hotfix|emergency|rollback' + echo "" +} | less