Approach to writing a Pull RequestInclude the purpose of this Pull Request. For example: This is a spike to explore… Consider providing an overview of why the work is taking place (with any relevant links); don't assume familiarity with the history.
(In addition to the official "GitHub Help 'Using pull requests' page",
see also "Forking vs. Branching in GitHub", "What is the difference between origin and upstream in GitHub")
Assuming that you have first forked a repo, here is what you should do in that fork that you own:
master
, where you could be tempted to accumulate and mix several modifications at once.origin/master
(making sure your patch is still working) will update the pull request automagically (no need to click on anything)git remote prune origin
). The GitHub GUI will propose for you to delete your branch in your pull-request page.Note: to write the Pull-Request itself, see "How to write the perfect pull request" (January 2015, GitHub)
March 2016: New PR merge button option: see "Github squash commits from web interface on pull request after review comments?".
The maintainer of the repo can choose to merge --squash
those PR commits.
Regarding the last point, since April, 10th 2013, "Redesigned merge button", the branch is deleted for you:
Deleting branches after you merge has also been simplified.
Instead of confirming the delete with an extra step, we immediately remove the branch when you delete it and provide a convenient link to restore the branch in the event you need it again.
That confirms the best practice of deleting the branch after merging a pull request.
pull request isn't an official "git" term.
Git uses the request-pull
(!) command to build a request for merging:
It "summarizes the changes between two commits to the standard output, and includes the given URL in the generated summary."
Github launches its own version on day one (February 2008), but redesigned that feature in May 2010, stating that:
Pull Request = Compare View + Issues + Commit comments
<humour>
That (pull request) isn't even defined properly by GitHub!
Fortunately, a true business news organization would know, and there is an e-note in order to replace pull-replace by 'e-note':
So if your reposotory needs a e-note... ask Fox Business. They are in the know.
</humour>
To learn how to make a pull request I just followed two separate help pages on Github (linked below as bullet points). The following command line commands are for Part 1. Part 2, the actual pull request, is done entirely on Github's website.
$ git clone https://github.com/tim-peterson/dwolla-php.git
$ cd dwolla-php
$ git remote add upstream https://github.com/Dwolla/dwolla-php.git
$ git fetch upstream
// make your changes to this newly cloned, local repo
$ git add .
$ git commit -m '1st commit to dwolla'
$ git push origin master
Part 1: fork someone's repo: https://help.github.com/articles/fork-a-repo
git clone->cd dwolla-php->git remote->git fetch
sequence above to clone your fork somewhere in your computer (i.e., "copy/paste" it to, in this case: third_party TimPeterson$
) and sync it with the master repo (Dwolla/dwolla-php)git add->git commit->git push
sequence above to push your changes to the remote repo, i.e., your fork on Github (tim-peterson/dwolla-php)Part 2: make pull-request: https://help.github.com/articles/using-pull-requests
In order to make a pull request you need to do the following steps:
It took me a while to figure this, hope this will help someone.
I've started a project to help people making their first GitHub pull request. You can do the hands-on tutorial to make your first PR here
The workflow is simple as
git clone <clone url you copied earlier>
git checkout -b branch-name
git commit
git push origin branch-name
Compare and pull request
buttonFor those of us who have a github.com account, but only get a nasty error message when we type "git" into the command-line, here's how to do it all in your browser :)
I followed tim peterson's instructions but I created a local branch for my changes. However, after pushing I was not seeing the new branch in GitHub. The solution was to add -u to the push command:
git push -u origin <branch>
I wrote a bash program that does all the work of setting up a PR branch for you. It performs forking if needed, syncing with the upstream, setting up upstream remote, etc. and you just need to commit your modifications, push and submit a PR.
Here is how you run it:
github-make-pr-branch ssh your-github-username orig_repo_user orig_repo_name new-feature
You will find the program here and its repository also includes a step-by-step guide to performing the same process manually if you'd like to understand how it works, and also extra information on how to keep your feature branch up-to-date with the upstream master and other useful tidbits.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With