GitHub clone from pull request?

I would like to clone a repository from GitHub. The problem is I don’t want the main branch; I want the version in this unapproved pull request.

Is it possible for me to clone the pull request version instead of the main repository?

  • git clone using ssh failed in Windows due to permission issue
  • Visual Studio Team Services: delete repository
  • How to use git mv from magit?
  • git apply a patch as much as possible when failing
  • Rebase a branch from another branch that is rebased from master
  • git checkout tries to checkout commit rather than branch
  • git and libgit : unable to create file (No such file or directory)
  • How to git svn fetch older history?
  • Setting user data just for one commit
  • Approach to handling such code change with Git
  • Auto generate/remove jenkins jobs
  • A file was added to git on commit n. How do I add it instead to commit n-m?
  • 8 Solutions collect form web for “GitHub clone from pull request?”

    You can clone the branch you want by using the -b option in the git clone command.

    In your case, the branch you want to clone is the source branch of the pull request (feature/mongoose-support):

    git clone https://github.com/berstend/frappe.git -b feature/mongoose-support /my_clone
    

    The easiest way to do that is like this:

    git fetch origin pull/2/head
    git checkout -b pullrequest FETCH_HEAD
    

    You will now be on a new branch that is on the state of the pull request.

    git fetch origin refs/pull/PR_NUMBER/head:NEW_LOCAL_BRANCH
    

    eg:

    $ git fetch origin pull/611/head:pull_611
    $ git checkout pull_611
    

    Make changes, commit them, PUSH and open new PR from your fork on GitHub

    You could follow the directions in this gist to be able to check out the remote directly without having to figure out their repository and branch.

    Example usage

    For one of my projects (github3.py) I have the following in my github3.py/.git/config

    [remote "github"]
        fetch = +refs/heads/*:refs/remotes/github/*
        fetch = +refs/pull/*/head:refs/remotes/github/pr/*
        url = git@github.com:sigmavirus24/github3.py
    

    The first line is what is standard for every remote with the exception that github is replaced by the remote’s name. What this means is that remote heads (or the heads of branches on that server) are “mapped” to local remotes prefixed by github/. So if I did git fetch github and had a branch on GitHub that wasn’t already noticed locally on my machine, it would download the branch and I could switch to it like so: git checkout -t github/branch_name.

    The second line does the same thing, but it does it for pull requests instead of standard git branches. That’s why you see refs/pull/*/head. It fetches the head of each pull request on GitHub and maps it to github/pr/#. So then if someone sends a pull request and it is numbered 62 (for example), you would do:

    git fetch github
    git checkout -t github/pr/62
    

    And then you would be on a local branch called pr/62 (assuming it didn’t already exist). It’s nice and means you don’t have to keep track of other people’s remotes or branches.

    When a user submits a pull request, they are asking for some changes to be merged from a branch on their clone of a fork back to another user’s repository.

    The changes you want can be got from the source of the pull request. To do this, clone the user’s repository (git://github.com/berstend/frappe.git), and then check out the branch he created the pull request from (feature/mongoose-support).

    After installing git-extras

    (cd /tmp && git clone --depth 1 https://github.com/tj/git-extras.git && cd git-extras && sudo make install)
    

    You can simply use git pr

    $ git pr 62 [remote]
    

    That pull request shows the commits from that person’s fork so you can see that he is pushing his changes from feature/mongoose-support branch.

    You can clone his repository and checkout that branch

    git clone git://github.com/dweldon/frappe
    cd frappe
    git pull origin pull/2/head
    

    How can I fetch an unmerged pull request for a branch I don't own?

    Git Baby is a git and github fan, let's start git clone.