Page History
Adding github as a remote repository is something you only need to do once for a given repo:
One-time config: add the github htcondor repository as a remote repository called github
git remote add github https://github.com/htcondor/htcondor.git
Here is the general form for converting a github pull request to a branch. Below this you will see many specific examples showing the convention for branch naming and commands to run in various different scenarios.
General: fetch a pull request ID from remote github creating branch BRANCHNAME
git fetch github pull/ID/head:BRANCHNAME
IT IS VERY IMPORTANT THAT YOUR MERGE THE PULL REQUEST INTO THE BRANCH IT WAS CREATED FROM.
Most people create pull requests off of the master branch. Look at the pull request on github, and near the top, directly under the title you will see a line similar to this:
Example message on github website
zmiller wants to merge 1 commit into htcondor:master from zmiller:changing-some-htcondor-code
Now that you know the target branch, create a new branch with the correct name and the pull request number.
Example 1: create a branch targeting *master* (V8_9 in this example) for github pull request ID 107
git fetch github pull/107/head:V8_9-pr107
Example 2: create a branch targeting *stable* (V8_8 in this example) for github pull request ID 107
git fetch github pull/107/head:V8_8-pr107
Now check out the target branch and merge the branch containing the pull request. There are two cases below.
MOST LIKELY, the pull request was made from master. So you probably want to just do this:
Example: check out the master and merge the V8_9-pr107 branch created above
git checkout master git pull git merge V8_9-pr107 git push master
Then, if the pull request was made from master but should also apply to the stable branch (because it's a bug fix), then cherry-pick the commit back to the correct branch. There may be more than one commit in a pull request. If this is the case, make sure you do them in the correct order. If you are picking into a release branch consult with TimT and TJ first.
Example: Cherry-pick the commit(s) back to stable (V8_8-branch in this example)
git checkout V8_8-branch git pull git cherry-pick <commit-hash-1> git cherry-pick <commit-hash-2> ... git push V8_8-branch
THIS IS EXTREMELY RARE, but if the pull request was targeted for stable (or a release branch), merge the pull request branch to the target branch and then do the normal merges forward. Consult with TimT and TJ if dealing with a release branch.
Example: Merge the pull request into a stable branch (V8_8-branch in this example) and then forward into master
git checkout V8_8-branch git pull git merge V8_8-pr107 git push V8_8-branch git checkout master git pull git merge V8_8-branch git push master
THAT'S IT! If you targeted the correct branch, the pull request should automatically close when gethub detects the SHA was merged.