J—P

Limited availability — accepting new projects starting July 2026.

Find Dirty Git Repositories

A tiny shell script that recursively scans a directory for Git repositories with uncommitted changes, nicknamed dirgit—a play on words combining "directory", "dirty", and "git".

#!/bin/bash

# Use current directory or first argument
ROOT="${1:-$(pwd)}"

# Find all Git repositories and check for dirty state
find "$ROOT" -type d -name ".git" 2>/dev/null | while read -r gitdir; do
    repo="$(dirname "$gitdir")"
    cd "$repo" || continue
    if [[ -n $(git status --porcelain) ]]; then
        echo "$repo"
    fi
done

Save it as dirgit (or any name you prefer), make it executable (chmod +x dirgit), and place it in /usr/local/bin or ~/bin to use it globally.

Usage

dirgit         # scan current directory
dirgit ~/code  # scan a specific directory

How to Reset a Single File in Git

If you've made changes to a file and want to discard them, you can use git checkout to restore it to the version from the last commit. This is useful when you want to undo changes that haven't…