]> git.phdru.name Git - git-wiki.git/blobdiff - pep-git.txt
Add a chapter "Branching models"
[git-wiki.git] / pep-git.txt
index 8c9eb1376448423ffe404e393d31fb548a206cc9..db703eb15e3f69c2e1ee31bfc9b72b000b5c95ed 100644 (file)
@@ -7,7 +7,7 @@ Status: Draft
 Type: Informational
 Content-Type: text/x-rst
 Created: 01-Jun-2015
-Post-History: 
+Post-History: 12-Sep-2015
 
 Abstract
 ========
@@ -43,7 +43,7 @@ Git Tutorial: `part 1
 `Git User's manual
 <https://www.kernel.org/pub/software/scm/git/docs/user-manual.html>`_.
 `Everyday GIT With 20 Commands Or So
-<https://www.kernel.org/pub/software/scm/git/docs/everyday.html>`_.
+<https://www.kernel.org/pub/software/scm/git/docs/giteveryday.html>`_.
 `Git workflows
 <https://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html>`_.
 
@@ -628,6 +628,33 @@ Git has a builtin merge strategy for what Python core developers call
     $ git merge -s ours v1  # null-merge v1 into master
 
 
+Branching models
+================
+
+Git doesn't assume any particular development model regarding
+branching and merging. Some projects prefer to graduate patches from
+the oldest branch to the newest, some prefer to cherry-pick commits
+backwards, some use squashing (combining a number of commits into
+one). Anything is possible.
+
+There are a few examples to start with. `git help workflows
+<https://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html>`_
+describes how the very git authors develop git.
+
+ProGit book has a few chapters devoted to branch management in
+different projects: `Git Branching - Branching Workflows
+<https://git-scm.com/book/en/Git-Branching-Branching-Workflows>`_ and
+`Distributed Git - Contributing to a Project
+<https://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project>`_.
+
+There is also a well-known article `A successful Git branching model
+<http://nvie.com/posts/a-successful-git-branching-model/>`_ by Vincent
+Driessen. It recommends a set of very detailed rules on creating and
+managing mainline, topic and bugfix branches. To support the model the
+author implemented `git flow <https://github.com/nvie/gitflow>`_
+extension.
+
+
 Advanced configuration
 ======================
 
@@ -901,6 +928,10 @@ At the second half of the page there is a table that lists
 corresponding Mercurial and git commands. Should work perfectly in
 both directions.
 
+Python Developer's Guide also has a chapter `Mercurial for git
+developers <https://docs.python.org/devguide/gitdevs.html>`_ that
+documents a few differences between git and hg.
+
 
 Copyright
 =========