#!/usr/bin/env bash set -euo pipefail # Push each submodule to its tracked remote/branch git submodule foreach --recursive ' BRANCH=$(git symbolic-ref --short HEAD 2>/dev/null || echo "") if [ -n "$BRANCH" ]; then git push origin "$BRANCH" echo " ✔ pushed $name ($BRANCH)" else echo " ⚠ skipping $name (detached HEAD)" fi ' # Push the parent repo git push echo "✔ pushed parent repo"