What's the difference between a Pull Request and a branch?

A pull request signals that you want some changes in your branch merged to a target branch.

One example might be that you make a new branch "my-feature" based on the current development branch (say, "master"). When you are done, you can push your branch to the remote repo and create a pull request from "my-feature" to "master". The pull request gives people an opportunity to review the change and comment, and you may push additional changes on the same branch in response to feedback which will be updated in the pull request. When the code is good to merge, someone can then apply the merge to master and the pull request is closed.

You can of course merge branches without first creating a pull request, but the benefit of pull requests comes for collaboration. In Stash, you can configure who can merge to which branches, and require a certain number of passing builds or approvals before the merge can be done. In a team environment such a workflow helps improve code quality and developer speed.


Pull requests let you tell others about changes you've pushed to a GitHub repository. Once a pull request is sent, interested parties can review the set of changes, discuss potential modifications, and even push follow-up commits if necessary.

A separate version of the code is BRANCH


A branch is just a separate version of the code.

A pull request is when someone take the repo, makes their own branch, does some changes, then tries to merge that branch in (put their changes in the other person's code repository). (In the most general of terms.)