gawkworkflow: Developing new features

 
 5.4 Developing New Features
 ===========================
 
 Developing a new feature can be easier once you have commit access to
 the repo.  First, create a new branch to hold your feature:
 
      $ git checkout master                     Start from master
      $ git pull                                Be sure to be up to date
      $ git checkout -b feature/python          Create and switch to a new branch
 
    Now, you can develop as normal, adding new files if necessary (such
 as new tests), modifying code, updating the 'ChangeLog' and
 documentation, and so on.
 
    You can share changes with the mailing list as diffs, as usual.
 However, especially for a large feature, it would be better to push your
 branch up to Savannah.  Then, everyone else can simply pull it down to
 their local systems and review your changes at their leisure.
 
    To push your branch up initially:
 
      $ git diff                                Review your changes
      $ git add ...                             Add any files for committing
      $ git commit                              Commit the files. Include a commit message
      $ git push -u origin feature/python       Push the branch up to the repo
 
    When you use 'push -u origin', Git helpfully converts your purely
 local branch into a tracking branch.  It becomes as if the branch had
 originated from the upstream repo and you checked it out locally.
 
    _You only need to do 'git push -u origin' once._  As you continue to
 work on your branch, the workflow simplifies into this:
 
      $ git diff                Review your changes
      $ git add ...             Add any files for committing
      $ git commit              Commit the files
      $ git push                Push your changes to the branch upstream