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.
Sending a pull request is simple. Browse to the branch or commit with your recent work and hit the 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.
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.
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.
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.
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.
The pull request dashboard gives a high level view of all pull requests across every repository you or your organization is involved with.
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!