@@ -163,6 +163,34 @@ C/C++ extensions
163163 docstrings, and the Numpydoc format is well understood in the
164164 scientific Python community.
165165
166+ Rebase a Pull Request
167+ ----------------------
168+
169+ When working on PR it is possible for other changes to get merged into
170+ the parent branch that conflict with your branch. The conflict can be
171+ trivial, for example both the parent branch and you branch add an
172+ entry to the top of `CHANGELOG `. Git can not unambiguously tell what
173+ to with both changes (should one go above the other? if so, which
174+ order? should it try to merge them?) so it gives up and declare the
175+ branches can not be merged cleanly. If you were the branches at the
176+ command line you could do an interactive merge where git pauses half
177+ way through to give you a chance to resolve the conflicts by hand,
178+ however using github almost all of the merges back into the parent
179+ branches are done via the web-interface, so only PRs which will
180+ cleanly merged will be accepted. If this happens to your PR, one of
181+ the developers will ask you to 'rebase' your branch which is the
182+ process by which you resolve the conflicts between your branch and
183+ the parent branch.
184+
185+ In git rebasing is a mild form of re-writing history, as it
186+ effectively transplants where your branch from where you intially
187+ forked of off the parent branch to some other point. For a much more
188+ detailed explanation (with pictures!) see
189+ http://git-scm.com/book/en/Git-Branching-Rebasing. In general,
190+ re-writing history (particularly published history) is considered very
191+ bad, but in this case is very useful.
192+
193+
166194Style guide
167195===========
168196
0 commit comments