From ab67327ec06074a785f56d4ca4b09d32f67074ab Mon Sep 17 00:00:00 2001 From: "Rico Sta. Cruz" Date: Tue, 7 Oct 2014 12:50:59 +0800 Subject: [PATCH] Implement git-pr --- Readme.md | 12 ++++ bin/git-pr | 11 ++++ man/git-pr.1 | 82 +++++++++++++++++++++++++++ man/git-pr.html | 143 ++++++++++++++++++++++++++++++++++++++++++++++++ man/git-pr.md | 56 +++++++++++++++++++ man/index.txt | 1 + 6 files changed, 305 insertions(+) create mode 100755 bin/git-pr create mode 100644 man/git-pr.1 create mode 100644 man/git-pr.html create mode 100644 man/git-pr.md diff --git a/Readme.md b/Readme.md index b0a60e3..2b69bb9 100644 --- a/Readme.md +++ b/Readme.md @@ -71,6 +71,7 @@ $ brew install git-extras - `git lock` - `git unlock` - `git reset-file` + - `git pr` ## git-extras @@ -668,3 +669,14 @@ or reset one file to certain commit ```bash $ git reset-file .htaccess dc82b19 ``` + +## git-pr [number] + +Checks out a pull request from GitHub + +```bash +$ git pr 226 +From https://github.com/visionmedia/git-extras + * [new ref] refs/pulls/226/head -> pr/226 +Switched to branch 'pr/226' +``` diff --git a/bin/git-pr b/bin/git-pr new file mode 100755 index 0000000..2105ed7 --- /dev/null +++ b/bin/git-pr @@ -0,0 +1,11 @@ +#!/bin/sh +# Based on https://gist.github.com/gnarf/5406589 + +if test "$1" = "clean"; then + git for-each-ref refs/heads/pr/* --format='%(refname)' | while read ref; do + git branch -D ${ref#refs/heads/} + done +else + test -z $1 && echo "pr number required." 1>&2 && exit 1 + git fetch -fu ${2:-origin} refs/pull/$1/head:pr/$1 && git checkout pr/$1 +fi diff --git a/man/git-pr.1 b/man/git-pr.1 new file mode 100644 index 0000000..683b300 --- /dev/null +++ b/man/git-pr.1 @@ -0,0 +1,82 @@ +.\" generated with Ronn/v0.7.3 +.\" http://github.com/rtomayko/ronn/tree/0.7.3 +. +.TH "GIT\-PR" "1" "October 2014" "" "Git Extras" +. +.SH "NAME" +\fBgit\-pr\fR \- Checks out a pull request locally +. +.SH "SYNOPSIS" +\fBgit\-pr\fR [] +. +.br +\fBgit\-pr clean\fR +. +.SH "DESCRIPTION" +Creates a local branch based on a GitHub pull request number, and switch to that branch afterwards\. +. +.SH "OPTIONS" + +. +.P +The name of the remote to fetch from\. Defaults to \fBorigin\fR\. +. +.SH "EXAMPLES" +This checks out the pull request \fB226\fR from \fBorigin\fR: +. +.IP "" 4 +. +.nf + +$ git pr 226 + +remote: Counting objects: 12, done\. +remote: Compressing objects: 100% (9/9), done\. +remote: Total 12 (delta 3), reused 9 (delta 3) +Unpacking objects: 100% (12/12), done\. +From https://github\.com/visionmedia/git\-extras + * [new ref] refs/pull/226/head \-> pr/226 + +Switched to branch \'pr/226\' +. +.fi +. +.IP "" 0 +. +.P +This pulls from a different remote: +. +.IP "" 4 +. +.nf + +$ git pr 226 upstream +. +.fi +. +.IP "" 0 +. +.P +To clean up old branches: +. +.IP "" 4 +. +.nf + +$ git pr clean + +Deleted branch pr/226 (was b96a8c2)\. +Deleted branch pr/220 (was d34dc0f)\. +. +.fi +. +.IP "" 0 +. +.SH "AUTHOR" +Originally from https://gist\.github\.com/gnarf/5406589 +. +.SH "REPORTING BUGS" +<\fIhttps://github\.com/visionmedia/git\-extras/issues\fR> +. +.SH "SEE ALSO" +<\fIhttps://github\.com/visionmedia/git\-extras\fR> diff --git a/man/git-pr.html b/man/git-pr.html new file mode 100644 index 0000000..4602ce3 --- /dev/null +++ b/man/git-pr.html @@ -0,0 +1,143 @@ + + + + + + git-pr(1) - Checks out a pull request locally + + + + +
+ + + +
    +
  1. git-pr(1)
  2. +
  3. Git Extras
  4. +
  5. git-pr(1)
  6. +
+ +

NAME

+

+ git-pr - Checks out a pull request locally +

+ +

SYNOPSIS

+ +

git-pr <number> [<remote>]
+git-pr clean

+ +

DESCRIPTION

+ +

Creates a local branch based on a GitHub pull request number, and switch to + that branch afterwards.

+ +

OPTIONS

+ +

<remote>

+ +

The name of the remote to fetch from. Defaults to origin.

+ +

EXAMPLES

+ +

This checks out the pull request 226 from origin:

+ +
$ git pr 226
+
+remote: Counting objects: 12, done.
+remote: Compressing objects: 100% (9/9), done.
+remote: Total 12 (delta 3), reused 9 (delta 3)
+Unpacking objects: 100% (12/12), done.
+From https://github.com/visionmedia/git-extras
+ * [new ref]         refs/pull/226/head -> pr/226
+
+Switched to branch 'pr/226'
+
+ +

This pulls from a different remote:

+ +
$ git pr 226 upstream
+
+ +

To clean up old branches:

+ +
$ git pr clean
+
+Deleted branch pr/226 (was b96a8c2).
+Deleted branch pr/220 (was d34dc0f).
+
+ +

AUTHOR

+ +

Originally from https://gist.github.com/gnarf/5406589

+ +

REPORTING BUGS

+ +

<https://github.com/visionmedia/git-extras/issues>

+ +

SEE ALSO

+ +

<https://github.com/visionmedia/git-extras>

+ + +
    +
  1. +
  2. October 2014
  3. +
  4. git-pr(1)
  5. +
+ +
+ + diff --git a/man/git-pr.md b/man/git-pr.md new file mode 100644 index 0000000..6194076 --- /dev/null +++ b/man/git-pr.md @@ -0,0 +1,56 @@ +git-pr(1) -- Checks out a pull request locally +================================= + +## SYNOPSIS + +`git-pr` <number> [<remote>]
+`git-pr clean` + +## DESCRIPTION + + Creates a local branch based on a GitHub pull request number, and switch to + that branch afterwards. + +## OPTIONS + + <remote> + + The name of the remote to fetch from. Defaults to `origin`. + +## EXAMPLES + +This checks out the pull request `226` from `origin`: + + $ git pr 226 + + remote: Counting objects: 12, done. + remote: Compressing objects: 100% (9/9), done. + remote: Total 12 (delta 3), reused 9 (delta 3) + Unpacking objects: 100% (12/12), done. + From https://github.com/visionmedia/git-extras + * [new ref] refs/pull/226/head -> pr/226 + + Switched to branch 'pr/226' + +This pulls from a different remote: + + $ git pr 226 upstream + +To clean up old branches: + + $ git pr clean + + Deleted branch pr/226 (was b96a8c2). + Deleted branch pr/220 (was d34dc0f). + +## AUTHOR + +Originally from https://gist.github.com/gnarf/5406589 + +## REPORTING BUGS + +<> + +## SEE ALSO + +<> diff --git a/man/index.txt b/man/index.txt index 1251044..61c78fc 100644 --- a/man/index.txt +++ b/man/index.txt @@ -24,6 +24,7 @@ git-info(1) git-info git-local-commits(1) git-local-commits git-lock(1) git-lock git-missing(1) git-missing +git-pr(1) git-pr git-rebase-patch(1) git-rebase-patch git-refactor(1) git-refactor git-release(1) git-release