- Creating a Pull Request
- Get Your Command Line Ready
- Preparing to Create a Branch
- How to Create a Branch in Your Personal Fork
- How to Merge in “develop” Branch Changes While you are Working
- Test Before Creating Pull Request
- Commit:
- How to Put Your Changes on your Personal Fork on the github servers
- Submitting your Pull Request
- SemVer
- I Have Submitted a Pull Request, Now What?
If you have never created a pull request, please read “What the Heck is a Pull Request? We also created this handy chart to show the various steps working with pull requests.
cd /Users/DaleMcGrew/NodeEnvironments/WebAppEnv/
# Activate your node environment
. bin/activate
cd /Users/DaleMcGrew/PythonProjects/PersonalGitForks/WebApp
# Change to directory where you checked out your Personal Fork from github
git branch -a
# See what branch you are currently set to
git checkout develop
# If you aren’t set to the develop branch, switch to that
git pull upstream develop
# Tell your personal fork on your local machine to get the latest from wevote/WebApp
git push origin develop
# Push this latest version of develop up to your Personal Fork on the github servers
You can see changes here: https://github.com/DaleMcGrew/WebApp
We want to set up a branch on your local computer.
git checkout -b <your-feature-branch>
# The “-b” creates the new branch.
Replace "" with your branch name.
In PyCharm: Right click WebApp > Git > Repository > Branches > New Branch
git fetch
# Sync your changes with what's upstream
git branch -a
# See what branch you are currently set to
git checkout develop
# If you aren’t set to the develop branch, switch to that
git pull upstream develop
# Tell your personal fork on your local machine to get the latest from wevote/WebApp
git push origin develop
# Push this latest version of develop up to your Personal Fork on the github servers
git checkout <your-feature-branch>
# Replace "" with your branch name
Now you need to merge locally the latest code from "develop" with your branch name. Dale does this merging with the PyCharm IDE. How you do this depends on the development environment you use. TODO: Add instructions for merging with develop via command line
To merge your local develop branch with :
$ git checkout develop
# Switch to the develop branch
$ git merge <your-feature-branch>
# Merge your branch with develop
You can than delete you branch if you are done making changes
$ git branch -d <your-featre-branch>
We use a tool that verifies our Javascript meets the eslint spec.
`npm test`
You may get warnings or errors. Please minimally fix the errors, and try to fix all of the warnings in files you are changing.
- Make sure you comply with the .editorconfig Reference the issue number in your commit message e.g.:
git commit -m '[Issue #<your-issue-number>] <short description of change>'
or
git commit -a
or
git commit -p
# Commit all of your changes
or
git commit FILENAME
and then individually add files with git add
You need to commit files via the command line so git doesn't throw an error (based on the line endings)
-
Stage your changes using
git add .
or using your IDE. -
Run
$ git commit -n -m 'Your commit message'
in the terminal
git branch -a
# Make sure you are looking at the branch you want to push
git push origin <your-feature-branch>
# Push your changes to your Personal Fork on the github servers
You can go to the github web page for your Personal Fork and make sure it shows up in “recently pushed branches"
- Open your repository fork on GitHub
- You should see a button to create a pull request - Press it
- Consider mentioning a contributor in your pull request comments to alert them that it's available for review
- Please don't merge your own changes. Create a pull request so others can review the changes.
- Wait for the reviewer to approve and merge the request
This guide walks through the process of sending a hypothetical pull request and using the various code review and management tools to take the change to completion. https://help.github.com/articles/using-pull-requests/
- Create a meta-issue with a bullet list using the
* [ ] item
markdown syntax. - Create issues for each bullet point
- Link to the meta-issue from each bullet point issue
- Check off the bullet list as items get completed
Linking from the bullet point issues to the meta issue will create a list of issues with status indicators in the issue comments stream, which will give us a quick visual reference to see what's done and what still needs doing.
- Minor documentation grammar/spelling fixes (code example changes should be reviewed)
We follow SemVer for our releases. Please read if you plan to tag for any releases.
Sometimes pull requests can take a day or two to be approved. How do you keep working? TODO discuss this.
While your pull request is being considered by the We Vote admins:
Any new changes unrelated to this one should be on a brand new branch (git checkout -b <your-second-feature-branch>
). Don't forget to check out the develop branch first, otherwise you'll
branch off of the current PR branch
If you want to make changes to your earlier commit in response to comments on
the pull request, you change back to the branch that you submitted it from (git checkout <your-feature-branch>
), make any changes, then commit and push them (steps 6-9).
These get automatically added to your pull request since they're in the same branch.
If your changes are small fixes, they should not be a new commit. Instead, use
git add and then git commit --amend
to fix up your original commit.
If you decide to abandon a pull request, you can CLOSE the issue it created and ignore it.
If the pull request is good, there's nothing else for you to do, besides wait for someone to accept it.
Moving a change between branches Sometimes you make a change on the wrong branch. You can move it to the right branch with git stash. From the branch where you made the changes:
git stash
git checkout branch-you-want-it-on
git stash pop
Once the pull request is accepted (or closed) you can delete your branch from the client. Or, you can wait until you have collected a bunch of them and delete all of the obsolete ones in one go. For example with the branch "dale_doc_updates_mar24":
git branch -D <your-feature-branch>
Also keep in mind that git branch -D my-branch
deletes branches only locally,
to delete them from the remote repo you have to do git push origin :my-branch
or
git push origin --delete <your-feature-branch>
git remote prune origin
For more advanced tips about using Pull Requests, see Pull Request Tips & Tricks
See also Troubleshooting Pull Request Problems
See also Approving Pull Requests