rpull

Fast-forward a repository and nested git submodules to origin/<branch> using ff-only semantics.

2|Updated Apr 24, 2026
One-click install
npx skills add https://github.com/geoyws/atmux --skill rpull
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: rpull
Source: https://github.com/geoyws/atmux/tree/main/.claude/skills/rpull
Command: npx skills add https://github.com/geoyws/atmux --skill rpull

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires git, bash, and includes scripts (resource) components.

What problem does it solve?

It solves the problem of needing to update a project plus all nested git submodules to the same target branch without doing repetitive manual pulls.

Core Features & Use Cases

  • Branch-scoped recursive sync: pulls the repository root and every nested submodule that is currently on the specified branch from origin/<branch>.
  • Safety via ff-only: enforces --ff-only so it will never create merge commits during the sweep.
  • Guardrails against wrong-branch states: skips any repo/submodule not on the requested branch and reports it clearly so you don’t end up with a mixed-branch workspace.
  • Use case: when your team needs to bring an entire multiproject workspace (root + submodules) forward on a shared per-team branch like myteam-alpha-dev.

Quick Start

Run /rpull <branch> from within the target project's tree to fast-forward the root and all nested submodules that are on that branch.

Frequently Asked Questions about rpull

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

FAQPage Schema
How do I fast-forward pull a git repository and all nested submodules at once?

To fast-forward pull a git repository and all nested submodules at once, run /rpull <branch> from within the project tree. It recursively updates the root and submodules currently on the specified branch using ff-only semantics.

Can I sync multiple git submodules to the same branch without creating merge commits?

Yes, you can sync multiple git submodules to the same branch without merge commits. The recursive pull enforces --ff-only semantics, ensuring it only fast-forwards to origin/<branch> and never creates merge commits during the workspace update.

What happens if a submodule is on a different branch during a recursive git pull?

During a recursive git pull, if a submodule is on a different branch, the process skips that repository and reports it clearly. This guardrail prevents mixed-branch states by only updating repos matching the caller-supplied branch.

Does this recursive pull approach work inside a tmux workflow for coding agents?

Yes, this recursive pull approach works inside a tmux workflow for coding agents. It supports operational updates across multi-repo workspaces and delegates execution to the atmux scripts/recursive-pull.sh driver for team-wide branch refreshes.

Do I need bash and git installed to perform recursive fast-forward pulls across submodules?

Yes, you need bash and git installed to perform recursive fast-forward pulls across submodules. These are the required dependencies for executing the scripts that drive the branch-scoped synchronization across your project workspace.