Difference between revisions of "Contributing with Github"

From reSIProcate
Jump to: navigation, search
(Created page with " === Create a Github account === If you haven't already, create an account in Github === Fork the project === Go to https://github.com/resiprocate/resiprocate and click th...")
 
Line 1: Line 1:
 +
=== Set up your Git config ===
  
 +
Git uses your real name and email address as an identifier in every commit.
 +
 +
It is mandatory that you set these in '''~/.git/config'''.  If you fail to do so, Git will use guessed values and this is often inconvient and impossible to correct after you send your changes to the server.
 +
 +
git config --global user.name "Daniel Pocock"
 +
git config --global user.email "daniel@pocock.pro"
 +
 +
You can and should override these on individual commits when merging patches that you have manually applied from third parties, e.g. using the '''--author''' parameter to the '''git commit''' command.
  
 
=== Create a Github account ===
 
=== Create a Github account ===
Line 34: Line 43:
 
  git commit -m 'autotools: fix a typo'
 
  git commit -m 'autotools: fix a typo'
  
Finally, send the new '''build-fixes''' branch up to the server:
+
=== Send changes to server ===
 +
 
 +
Commits are stored on your local disk.  They are only sent to the server when you explicitly ask to send them using the '''git push''' command.
 +
 
 +
Send the new '''build-fixes''' branch up to the server:
  
 
  git push -u origin build-fixes
 
  git push -u origin build-fixes
 +
 +
This will remember that you always want to send commits on '''build-fixes''' when you push.  If you make subsequent commits on the same branch, you can just use:
 +
 +
git push
 +
 +
and it will send them.
  
 
=== Create a pull request ===
 
=== Create a pull request ===

Revision as of 20:09, 17 September 2014

Set up your Git config

Git uses your real name and email address as an identifier in every commit.

It is mandatory that you set these in ~/.git/config. If you fail to do so, Git will use guessed values and this is often inconvient and impossible to correct after you send your changes to the server.

git config --global user.name "Daniel Pocock"
git config --global user.email "daniel@pocock.pro"

You can and should override these on individual commits when merging patches that you have manually applied from third parties, e.g. using the --author parameter to the git commit command.

Create a Github account

If you haven't already, create an account in Github

Fork the project

Go to https://github.com/resiprocate/resiprocate and click the Fork button at the top right-hand corner of the page.

Github will ask you which organisation you want to put your fork in. Choose your personal page (e.g. mine is https://github.com/dpocock)

Check out your fork

Here is an example for the dpocock fork

mkdir ~/ws
cd ~/ws
git clone git@github.com:dpocock/resiprocate.git resiprocate

Create a branch from master

cd resiprocate
git branch build-fixes
git checkout build-fixes

Make your changes, e.g.

vi configure.ac

Now add the file to the change set and commit it (these are two steps in Git):

git add configure.ac
git commit -m 'autotools: fix a typo'

Send changes to server

Commits are stored on your local disk. They are only sent to the server when you explicitly ask to send them using the git push command.

Send the new build-fixes branch up to the server:

git push -u origin build-fixes

This will remember that you always want to send commits on build-fixes when you push. If you make subsequent commits on the same branch, you can just use:

git push

and it will send them.

Create a pull request

Go back to Github and look at the page for your fork.

Github should tell you that it sees your recent changes and there should be a button labelled Create pull request

Click the button and add any comments for the reviewers.