FAQ
General
What is rung?
Rung is a CLI tool for managing stacked pull requests on GitHub. It tracks branch dependencies, automates rebasing, and manages PRs across your stack.
Why is it called “rung”?
A rung is a crosspiece on a ladder. Like rungs help you climb, stacked PRs help you build features step by step.
Does rung work with GitHub Enterprise?
Not yet, but it’s on the roadmap. Currently rung only works with github.com.
Does rung work with GitLab/Bitbucket?
Not currently. Rung is GitHub-specific. Support for other platforms may be added in the future.
Installation
How do I install rung?
See the Installation guide for all methods:
- Pre-built binaries
- Homebrew
- cargo install
- From source
What are the requirements?
- Git 2.x
- GitHub CLI (
gh) authenticated, orGITHUB_TOKENenvironment variable
Do I need Rust installed?
Only if building from source. Pre-built binaries and Homebrew don’t require Rust.
Usage
How do I start using rung?
rung init # Initializerung create -m "feat: my feature" # Create first branch# ... make changes ...rung create -m "feat: next part" # Stack more branchesrung submit # Create PRsSee the Quick Start for a complete tutorial.
Can I use rung with existing branches?
Currently, branches need to be created with rung create to be tracked in the stack. Existing branches aren’t automatically detected.
How many branches should I have in a stack?
3-5 branches is ideal. Longer stacks:
- Are harder to review
- Have more potential for conflicts
- Take longer to merge
Can I have multiple stacks?
Yes. Start each stack from main:
git checkout mainrung create -m "feat: auth" # Stack 1
git checkout mainrung create -m "feat: payments" # Stack 2How do I rename a branch in the stack?
# Standard git renamegit branch -m old-name new-name
# Update the stack manually# Edit .git/rung/stack.jsonCan I reorder branches in the stack?
Not directly. The stack order is determined by parent relationships. You’d need to:
- Manually update
.git/rung/stack.json - Rebase branches to match the new order
- Update PR base branches
This is an advanced operation—usually it’s easier to create a new stack.
Syncing
When should I sync?
Sync whenever main (or your base branch) gets new commits:
git checkout maingit pullrung syncDaily syncing is a good habit.
What happens during sync?
For each branch in your stack (bottom-up):
- Rung checks if the parent has moved
- If yes, runs
git rebase --onto <new-parent> <old-parent> <branch> - If conflicts occur, pauses for you to resolve
How do I abort a sync?
rung sync --abortThis restores all branches to their pre-sync state.
Pull Requests
How does rung create PRs?
Rung uses the GitHub API to:
- Create PRs with correct base branches
- Use commit messages as PR titles
- Add stack navigation comments
Can I customize PR descriptions?
Not directly through rung. You can:
- Edit PR descriptions on GitHub after creation
- Use GitHub PR templates in your repository
What happens when I merge a PR?
rung merge:
- Merges the PR via GitHub API
- Rebases child branches onto the new base
- Updates child PR base branches
- Removes the branch from the stack
- Deletes local and remote branches
Troubleshooting
Why is my stack out of sync?
Usually because:
maingot new commits- Someone else pushed to a shared branch
- A manual rebase was done outside rung
Solution: rung sync
Can I undo a sync?
Yes:
rung undoThis restores branches to their pre-sync state using backups.
Can I undo a merge?
Not directly. The PR is merged on GitHub. You’d need to:
- Revert the merge commit on GitHub
- Manually restore your stack
What if I get conflicts?
- Resolve the conflicts in your editor
- Stage the resolved files:
git add . - Continue:
rung sync --continue
See Conflict Resolution for details.
Why isn’t my branch in the stack?
Branches must be created with rung create to be tracked. If you created a branch with git checkout -b, it won’t be in the stack.
Contributing
How can I contribute?
See the Contributing Guide for details on how to get started.
Where do I report bugs?
Open an issue on GitHub.
Related
- Quick Start — Get started tutorial
- Troubleshooting — Common issues
- Architecture — How rung works