diff --git a/doc/developer.xml b/doc/developer.xml
index 3b6d0a086..e9022172c 100644
--- a/doc/developer.xml
+++ b/doc/developer.xml
@@ -68,12 +68,28 @@ foo(const char *abc, int xyz)
   <chapter>
     <title>Hacking The Source</title>
 
+    <para>
+      MPD sources are managed in a git repository on <ulink
+      url="http://git.musicpd.org/">git.musicpd.org</ulink>.
+    </para>
+
     <para>
       Always write your code against the latest git:
     </para>
 
     <programlisting>git clone git://git.musicpd.org/master/mpd.git</programlisting>
 
+    <para>
+      If you already have a clone, update it:
+    </para>
+
+    <programlisting>git pull --rebase git://git.musicpd.org/master/mpd.git master</programlisting>
+
+    <para>
+      You can do without "--rebase", but we recommend that you rebase
+      your repository on the "master" repository all the time.
+    </para>
+
     <para>
       Configure with the options <option>--enable-debug
       --enable-werror</option>.  Enable as many plugins as possible,
@@ -83,8 +99,55 @@ foo(const char *abc, int xyz)
     <para>
       Don't mix several changes in one single patch.  Create a
       separate patch for every change.  Tools like
-      <application>stgit</application> help you with that.
+      <application>stgit</application> help you with that.  This way,
+      we can review your patches more easily, and we can pick the
+      patches we like most first.
     </para>
+
+
+    <section>
+      <title> Basic stgit usage</title>
+
+      <para>
+        stgit allows you to create a set of patches and refine all of
+        them: you can go back to any patch at any time, and re-edit it
+        (both the code and the commit message). You can reorder
+        patches and insert new patches at any position. It encourages
+        creating separate patches for tiny changes.
+      </para>
+
+      <para>
+        stgit needs to be initialized on a git repository: stg init
+      </para>
+
+      <para>
+        Before you edit the code, create a patch: stg new
+        my-patch-name (stgit now asks you for the commit message).
+      </para>
+
+      <para>
+        Now edit the code. Once you're finished, you have to "refresh"
+        the patch, i.e. your edits are incorporated into the patch you
+        have created: stg refresh
+      </para>
+
+      <para>
+        You may now continue editing the same patch, and refresh it as
+        often as you like. Create more patches, edit and refresh them.
+      </para>
+
+      <para>
+        To view the list of patches, type stg series. To go back to a
+        specific patch, type stg goto my-patch-name; now you can
+        re-edit it (don't forget stg refresh when you're finished with
+        that patch).
+      </para>
+
+      <para>
+        When the whole patch series is finished, convert stgit patches
+        to git commits: stg commit
+      </para>
+    </section>
   </chapter>
 
   <chapter>