GNU LilyPond Contributor's Guide: 1.3 Sharing your changes

## 1.3 Sharing your changes

### 1.3.1 Producing a patch

Once you have finished editing your files, checked that your changes meet the Code style, and/or Documentation policy, properly set up your name and email in Git user configuration, and checked that the entire thing compiles, you may:

>     git commit -a
>     git format-patch origin

The commit should include a brief message describing the change. This consists of a one-line summary describing the change, and if necessary a blank line followed by several lines giving the details:

>     Did household chores.

>     I hung up the wet laundry and then washed the car.  I also
>     vacuumed the floors, rinsed the dirty dishes, fed the cat, and
>     recalibrated the temporal flux machine.

If the change is to the documentation only then the one-line summary should be prefixed with “Docs: ”.

If you added a file to the source code, you must add it to git with:

>     git add FILENAME

(and possibly modify the ‘`GNUmakefile`’)

These commands will produce one or more files named ‘`0001-xyz`’, ‘`0002-abc`’, etc. in the top directory of the git tree. Send an email to lilypond-devel@gnu.org with these files attached, and a developer will review and apply the patches to the main repository.

### 1.3.2 Committing directly

Most contributors do not have permission to commit directly. If you do, make sure you have set up your name and email in Git user configuration, then edit ‘`.git/config`’: change the line

>     url = git://git.sv.gnu.org/lilypond.git/

into

>     url = ssh://user@git.sv.gnu.org/srv/git/lilypond.git

where user is your login name on Savannah.

If you have not already done so, you should generate and upload a SSH key: open https://savannah.gnu.org/my/ in your browser, then go to ‘Preferences’ then to something like ‘Edit SSH Keys’, and follow the instructions on that page.

You may then:

>     git push origin

#### Contributor’s Guide