FAQ
General
Section titled “General”What is rung?
Section titled “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”?
Section titled “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?
Section titled “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?
Section titled “Does rung work with GitLab/Bitbucket?”Not currently. Rung is GitHub-specific. Support for other platforms may be added in the future.
Installation
Section titled “Installation”How do I install rung?
Section titled “How do I install rung?”See the Installation guide for all methods:
- Pre-built binaries
- Homebrew
- cargo install
- From source
What are the requirements?
Section titled “What are the requirements?”- Git 2.x
- GitHub CLI (
gh) authenticated, orGITHUB_TOKENenvironment variable
Do I need Rust installed?
Section titled “Do I need Rust installed?”Only if building from source. Pre-built binaries and Homebrew don’t require Rust.
How do I start using rung?
Section titled “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?
Section titled “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?
Section titled “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?
Section titled “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?
Section titled “How 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?
Section titled “Can 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
Section titled “Syncing”When should I sync?
Section titled “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?
Section titled “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?
Section titled “How do I abort a sync?”rung sync --abortThis restores all branches to their pre-sync state.
Pull Requests
Section titled “Pull Requests”How does rung create PRs?
Section titled “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?
Section titled “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?
Section titled “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
Section titled “Troubleshooting”Why is my stack out of sync?
Section titled “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?
Section titled “Can I undo a sync?”Yes:
rung undoThis restores branches to their pre-sync state using backups.
Can I undo a merge?
Section titled “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?
Section titled “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?
Section titled “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
Section titled “Contributing”How can I contribute?
Section titled “How can I contribute?”See the Contributing Guide for details on how to get started.
Where do I report bugs?
Section titled “Where do I report bugs?”Open an issue on GitHub.
Related
Section titled “Related”- Quick Start — Get started tutorial
- Troubleshooting — Common issues
- Architecture — How rung works