gawkworkflow: Push Pull

 
 2.1 The "Push/Pull" Model of Software Development
 =================================================
 
 Git is a powerful, distributed source code management system.  However,
 the way it's used for 'gawk' development purposely does not take
 advantage of all its features.
 
    Instead, the model is rather simple, and in many ways much like more
 traditional distributed systems such as the Concurrent Versions System
 (http://www.nongnu.org/cvs) (CVS) or Subversion
 (http://subversion.apache.org) (SVN).
 
    The central idea can be termed "push/pull."  You _pull_ updates down
 from the central repository to your local copy, and if you have commit
 rights, you _push_ your changes or updates up to the central repository.
 
    Where Git does stand out is in its management of multiple branches of
 development.  Git makes it very easy to set up a separate branch for use
 in fixing a bug or developing a feature.  You can then easily keep that
 branch up to date with respect to the main development branch(es), and
 eventually merge the changes from your branch into the main branch.
 
    Almost always Git does these merges for you without problem.  When
 there is a problem (a "merge conflict"), usually it is very easy for you
 to "resolve" them and then complete the merge.  We talk about this in
 more detail later (SeeMerge Conflicts).