How to Pull a Branch from Another User's Fork using Git


Suppose there is a repository called repo_name which both I and some_user have forked.

Generally, each time I make a change, I’ll pull from upstream, which is the project we want to contribute to as well as our source of truth. In this command, I pull master from upstream.

git pull upstream master

I’ll merge any conflicts that may appear and push my changes to origin, which is my own fork of the repository. It’s at this point when I’ll submit a pull or merge request.

git push origin some_branch

But what if I wanted to pull from a branch on another user’s fork of repo_name?

We can run through these terminal commands:

git remote add some_user git@github.com:some_user/repo_name.git
git fetch some_user
git checkout -b my_name_for_their_branch some_user/their_branch

The URI used in the first step above can be either an SSH-based URI or an HTTP URI. Either will work depending on how your system is set up.

  • SSH-based URI: git@github.com:some_user/repo_name.git
  • HTTP URI: https://github.com/some_user/repo_name.git