Skip to main content

Git Branch Stacking Utility

Project description

Panqake: Stack Git Branches Without the Headache

Panqake is a CLI tool that makes managing dependent pull requests significantly easier by automating the entire git-stacking workflow. Stop dealing with painful rebases and focus on your code instead.

What Problems Panqake Solves

  • Reviews no longer block progress on dependent work
  • Simplify complex workflows with a single command for common operations
  • Eliminate manual rebasing when working with dependent branches
  • Automate PR management for each branch in your stack

Quick Installation

uv tool install panqake

Optional dependency:

  • gh: GitHub CLI (needed only for PR creation/management)

Most-Used Commands

Command Purpose What It Does
panqake new feature-name Create branches Creates a new branch based on your current branch
panqake modify Commit changes Interactively select files to stage and commit/amend
panqake update Propagate changes Rebases all child branches and updates their PRs
panqake merge Complete workflow Merges PR and updates all dependent branches

Real-World Workflow Example

Here's how to build a stack of dependent features:

# Start from main
git checkout main

# Create your base feature branch
pq new auth-backend
# Make changes, commit them
pq modify -m "Implement JWT authentication"

# Create a dependent branch for frontend work
pq new auth-frontend
# Make changes, commit them
git add .
pq modify -m "Add login form UI"

# Oops! Need to fix something in the backend branch
pq switch auth-backend
# Make your backend fixes

# Commit the fixes and automatically update child branches
pq modify -m "Fix token validation"
pq update

# Create PRs for your entire stack with a single command
pq pr

# When the first PR is approved, merge it and update the stack
panqake merge auth-backend

Advanced Features

Track Existing Git Branches

Add branches created outside panqake to your stack:

pq track feature-branch

Flexible Commit Creation

# Amend existing Commit
pq modify

# Force creating a new commit instead of amending
pq modify --no-amend

# Or explicitly
pq modify --commit -m "New feature implementation"

Delete a Branch While Preserving the Stack

pq delete feature-old

Why Choose Panqake

  • Designed for real workflows: Stack PRs without effort
  • Reduces context switching by making branch navigation seamless
  • Single command operations: Complex git operations condensed to simple commands
  • GitHub integration: Seamlessly works with GitHub PRs

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

panqake-0.5.0.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

panqake-0.5.0-py3-none-any.whl (29.2 kB view details)

Uploaded Python 3

File details

Details for the file panqake-0.5.0.tar.gz.

File metadata

  • Download URL: panqake-0.5.0.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.16

File hashes

Hashes for panqake-0.5.0.tar.gz
Algorithm Hash digest
SHA256 119a05d4b55ec2ed854d2e4b041be4026981db5344cf33be5a61701ab2f914d2
MD5 2924db7f7129e247bdb72ea21ffeae93
BLAKE2b-256 562f54185df209b955b8a925b1514e5a7837e8708bcd3e30664dde730238c065

See more details on using hashes here.

File details

Details for the file panqake-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: panqake-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 29.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.16

File hashes

Hashes for panqake-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 664e479662143476bb03f9543625974ff46f4b8b84400f9ef84f57b683d7f9d6
MD5 46d3b8c15a9b46d670190a0dde559e93
BLAKE2b-256 7f08344bf15da7eb515a54d0fd3b6ec66969af8e12995869a2c9571e50ba04fb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page