git-pull-request
Create GitHub pull requests from the command line
TLDR
Create a pull request for a project on GitHub
SYNOPSIS
git request-pull [<options>] <start> <url> [<end>]
PARAMETERS
-p
Show patch text for each commit in addition to summary
<start>
Starting commit or branch (e.g., a tag) from which changes diverge
<url>
URL of the upstream project repository where <start> is published
<end>
Optional ending commit to summarize up to (defaults to current HEAD)
DESCRIPTION
The git request-pull command generates a summarized description of the changes between two commits, formatted as an email-ready message to request that someone pull your changes into their repository.
It identifies the commits made since a specified starting point, lists the files affected, and provides a concise overview suitable for emailing maintainers. This is particularly useful in workflows where changes are shared via email rather than modern web-based pull request systems like GitHub or GitLab.
Usage typically involves specifying a starting commit (often a tag or branch point), the URL of the upstream repository, and optionally an ending commit (defaults to HEAD). The output includes a summary of commits with messages, a list of changed paths, and optionally the full patches if -p is used.
This tool predates widespread use of hosting platforms and remains relevant for email-based collaboration or custom workflows. It pipes well to git send-email for direct dispatch.
CAVEATS
Outputs to stdout only; pipe to email tools like git send-email.
Assumes linear history; complex merges may confuse summaries.
Deprecated for web PRs in favor of platform-specific tools.
EXAMPLE
git request-pull v1.0 https://example.com/project.git
Generates summary of changes since tag 'v1.0' for emailing.
WITH PATCH
git request-pull -p origin/main https://github.com/user/repo.git HEAD
Includes full diffs.
HISTORY
Introduced in Git 1.5.0 (January 2007) as part of early Git tooling for distributed development.
Added -p option in Git 1.6.0; minor refinements since for better formatting.
SEE ALSO
git-format-patch(1), git-send-email(1), git-log(1), git-diff(1)


