Pull Requests 2.0

GitHub launched with a simple pull request system on day one. You’ve used it to send 200 thousand pull requests in just over two years. Now we’re taking it to the next level with a re-imagined design and a slew of new tools that streamline the process of discussing, reviewing, and managing changes.

As of today, pull requests are living discussions about the code you want merged. They’re our take on code review and represent a big part of our vision for collaborative development.

Know What You’re Sending

Sending a pull request is simple. Browse to the branch or commit with your recent work and hit the Pull Request button. You’ll be greeted by a brand new screen:

Pull requests are now fully revision aware and take into account not only what you would like pulled but also where you intend those changes to be applied. They even work when sending from and to the same repository, making pull requests just as useful in scenarios where a team is working out of a single shared repository as they are in the fork + pull model.

When you send a pull request, you’re starting a discussion.

Some back and forth is typically required before a pull request is accepted. The maintainer needs clarification, or the change doesn’t conform to the project’s coding conventions, or maybe someone was able to take a concept 80% to completion and needs help working through the last bits.

The discussion view makes pull requests the best place to have these types of conversations. Anywhere. Here’s why:

The discussion view presents all pull request related activity as it unfolds: comment on the pull request itself, push follow up commits, or leave commit notes - it’s all interleaved into the discussion view as it happens.

Revision Aware

The discussion view is perfect for watching changes evolve over time, but it’s equally important to know exactly what modifications would be made if the changes were accepted right now. The Commits and Files Changed tabs are quickly accessible and show the cumulative progress of the pull request:

Look familiar? It’s a miniature compare view.

Visible, Linkable, Archived

Anyone with access can browse a repository’s pull requests by visiting the repository’s Network ⇢ Pull Requests page.

Every pull request has a URL so you can link to them. They’re archived forever and indexed by search engines.

An Issue at heart

Pull requests are tightly integrated into GitHub Issues. When you see an[^] icon in the issues list, it means there’s a pull request attached.

Don’t use Issues? No problem. You still get awesome pull requests.

Pull Request Dashboard

The pull request dashboard gives a high level view of all pull requests across every repository you or your organization is involved with.

What are you waiting for?

Pull requests sent prior to today are not automatically imported into the new system. If you have outstanding requests, use them as an opportunity to try out revision aware pull requests today!

Have feedback on this post? Let @github know on Twitter.
Need help or found a bug? Contact us.



Discover new ways to build better

Try Marketplace apps free for 14 days

Learn more