gawkworkflow: Developing new features

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