dash-docs/docs/working-with-github.md
2017-02-28 20:30:36 -06:00

86 lines
3.7 KiB
Markdown

### Working With GitHub
GitHub allows you to make changes to a project using git, and later submit them
in a "pull request" so they can be reviewed and discussed. Many online how-tos
exist so you can learn git, [here's a good
one](https://www.atlassian.com/git/tutorial/git-basics).
In order to use GitHub, you need to [sign up](http://github.com/signup) and [set
up git](https://help.github.com/articles/set-up-git). You will also need to
click the **Fork** button on the bitcoin.org [GitHub
page](https://github.com/bitcoin-dot-org/bitcoin.org) and clone your GitHub
repository into a local directory with the following command lines:
```
git clone (url provided by GitHub on your fork's page) bitcoin.org
cd bitcoin.org
git remote add upstream https://github.com/bitcoin-dot-org/bitcoin.org.git
```
**How to send a pull request**
1. Checkout to your master branch. `git checkout master`
2. Create a new branch from the master branch. `git checkout -b (any name)`
3. Edit files and [preview](#previewing) the result.
4. Track changes in files. `git add -A`
5. Commit your changes. `git commit -m '(short description for your change)'`
6. Push your branch on your GitHub repository. `git push origin (name of your
branch)`
7. Click on your branch on GitHub and click the **Compare / pull request**
button to send a pull request.
When submitting a pull request, please take required time to discuss your
changes and adapt your work. It is generally a good practice to split unrelated
changes into separate branches and pull requests.
**Travis Continuous Integration (CI)**
Shortly after your Pull Request (PR) is submitted, a Travis CI job will
be added to [our queue](https://travis-ci.org/bitcoin-dot-org/bitcoin.org). This
will build the site and run some basic checks. If the job fails, you
will be emailed a link to the build log and the PR will indicate a
failed job. Read the build report and try to correct the problem---but
if you feel confused or frustrated, please ask for help on the PR (we're
always happy to help).
If you don't want a particular commit to be tested, add `[ci skip]`
anywhere in its commit message.
If you'd like to setup Travis on your own repository so you can test
builds before opening a pull request, it's really simple:
1. Make sure the master branch of your repository is up to date with the
bitcoin-dot-org/bitcoin.org master branch.
2. Open [this guide](http://docs.travis-ci.com/user/getting-started/)
and perform steps one, two, and four. (The other steps are already
done in our master branch.)
3. After you push a branch to your repository, go to your branches page
(e.g. for user harding, github.com/harding/bitcoin.org/branches). A
yellow circle, green checkmark, or red X will appear near the branch
name when the build finishes, and clicking on the icon will take you
to the corresponding build report.
**How to make additional changes in a pull request**
You simply need to push additional commits on the appropriate branch of your
GitHub repository. That's basically the same steps as above, except you don't
need to re-create the branch and the pull request.
**How to reset and update your master branch with latest upstream changes**
1. Fetch upstream changes. `git fetch upstream`
2. Checkout to your master branch. `git checkout master`
3. Replace your master branch by the upstream master branch. `git reset --hard
upstream/master`
4. Replace your master branch on GitHub. `git push origin master -f`
**Advanced GitHub Workflow**
If you continue to contribute to Bitcoin.org beyond a single pull
request, you may want to use a more [advanced GitHub
workflow](https://gist.github.com/harding/1a99b0bad37f9498709f).
**Questions?**
Contact Will Binns <will@bitcoin.org> for help.