Command-line and GUI utility · version 1.0.14

Git Cherry-Pick PR

A command-line and desktop tool for selecting commits, creating a temporary branch, and preparing a pull request.

$ git cp-pr A..B
Command summary
Input
Commit hash or range
Branch
New cherry-pick branch
Output
GitHub PR or Markdown file
Recovery
Original branch restored
INPUTCommit hashes or ranges
LOCALTemporary branch and cherry-pick
OUTPUTPR or Markdown details
RECOVERReturn to original branch

Workflow

What the command does

The tool prepares a separate cherry-pick branch from selected commits, then either creates a pull request or writes its details to Markdown.

Use it when your development branch contains many local commits but you need to send only one or more specific changes upstream. For example, a bug fix discovered during development can be selected from the same branch, cherry-picked onto a clean temporary branch, and submitted as a specific pull request without including unrelated work.

Development branch

Many local commits

Selected commits

Bug fix or specific change

Upstream PR
cherry-pick branchReady to review

Clean change without unrelated work

01

Select commits

Pass individual commits or ranges. Commit messages become a structured PR title and body, with trailers consolidated cleanly.

git cp-pr A..B
02

Choose an output

Create through GitHub CLI, write a Markdown brief, make it a draft, or open your editor before submission.

--draft --editor
03

Use dry-run

Dry-run applies the commits locally, leaves the branch available, and skips both the remote push and PR creation.

--dry-run

Desktop interface

Commit selection in a tree view

The Tkinter GUI runs from the repository you launch it in. Browse the current branch by default, expand to local and remote branches when needed, and select commits one by one.

  • Current branch view by default
  • All branches in tree, view only
  • Base target, draft, editor, and dry-run controls
$ git cp-pr-gui
Git Cherry-Pick PR GUI showing commits from all branches
All branches in tree expands what is visible, not what gets selected.

Installation

Install and run from a repository

Choose a direct Git installation or install from a local clone.

macOS / Linux / BSD
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install git+https://github.com/jplcz/git-cp-pr.git
Windows PowerShell
py -m pip install --user pipx
py -m pipx ensurepath
pipx install git+https://github.com/jplcz/git-cp-pr.git
TRY IT cd your-repository && git cp-pr --dry-run abc1234