pushall

Merges, pushes, and prunes branches across Git submodules using coordinated subagents.

Updated Apr 6, 2026
One-click install
npx skills add https://github.com/Hexalith/Hexalith.FrontComposer --skill pushall-hexalith
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: pushall
Source: https://github.com/Hexalith/Hexalith.FrontComposer/tree/main/.agents/skills/pushall
Command: npx skills add https://github.com/Hexalith/Hexalith.FrontComposer --skill pushall-hexalith

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Synchronizing a superproject with many Git submodules is tedious and error-prone: each repo needs fetching, merging, conflict resolution, pushing, and branch cleanup in the right order. This Skill automates that entire multi-repo Git workflow safely. ## Core Features & Use Cases - Parallel submodule processing: Spawns one dedicated subagent per root-declared submodule, running them concurrently up to the available limit. - Safe merge and prune workflow: Fetches, fast-forwards the default branch, merges local and remote branches with manual conflict resolution, pushes, then deletes only fully merged branches using safe delete and exact-OID deletion leases. - Ordered superproject push: Commits and pushes the main repository only after every submodule subagent finishes, so updated submodule pointers are included. - Use Case: After a week of feature work spread across a Hexalith superproject and its reference submodules, run /pushall to merge every branch, resolve conflicts, push everything, and prune stale branches in one coordinated pass. ## Quick Start Invoke /pushall to sync, merge, push, and prune branches across all submodules and the main repository.

Frequently Asked Questions about pushall

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I merge and push branches across multiple Git submodules at once?

Run /pushall, which spawns a dedicated subagent per root-declared submodule to fetch, merge all local and remote branches into the default branch, push, and prune merged branches. The superproject is committed and pushed last so it picks up updated submodule pointers.

How does the skill handle Git merge conflicts in submodules?

On conflict it lists unresolved paths, inspects the base and both sides, and edits files to preserve both branches' intent. If a safe resolution cannot be validated, it runs git merge --abort, records the ref as skipped, and continues with the remaining refs.

Is it safe to delete remote branches automatically after merging?

Yes, the skill only deletes a remote branch after its fetched tip is verified as an ancestor of the pushed default branch, using git push --force-with-lease with the exact expected OID. Local branches are removed only with git branch -d, never -D.

What happens if one submodule fails or has no remote during pushall?

The failing repo is recorded as skipped or failed and the run continues with the remaining submodules. The superproject is never pushed while any submodule subagent is still active or unreported.

Can pushall run without subagent support?

No. If subagents are unavailable, the skill stops before modifying any repository and reports that /pushall requires subagent support. It never falls back to processing submodules in the coordinator agent.