Child pages
  • Git
Skip to end of metadata
Go to start of metadata

Getting started with Git

Important: We are now fully migrated to a native git server solution. All procedures around using git is therefore slightly different, since there is no longer subversion synchronization process. To clone the new git repository, you can use

$ git clone https://github.com/apache/trafficserver.git

To work on a branch in git

$ git checkout -b 7.1.x origin/7.1.x

Committing

Normal git commit methodology applies: You can develop in your local repo, push up etc. We highly recommend that everyone tries to push commits such that the tree is in a buildable state after each commit. Having the tree buildable throughout all commits in the tree helps with running git bisect. For example, if you have a number of commits in a local repo, and are unsure which one of those commits actually build, you should consider squashing (git rebase -i) these commits into one or a few commits.

Before pushing upstream, you should also make it a habit to pull or fetch from the upstream remote before pushing.

Commit messages should follow the standard formatting described on the CommitPolicies page.

Cherry-Pick

When some commits in master branch are needed to be back-ported, cherry-pick and send Pull-Request.

  1. Make sure the commits are already on master
  2. Cherry-Pick with "-x"

    $ git cherry-pick -x <COMMIT>
  3. Uncomment the conflics in commit message if there
  4. Send a Pull-Request
  5. Add "Backport" label

Example:

commit 90ad8484773095459f81242ec1ed61822da7142b
Author: Leif Hedstrom <zwoop@apache.org>
Date:   Fri Dec 9 08:08:31 2016 -0700

    Update the RAT exceptions

    (cherry picked from commit 7487ff750cd214ee956557273c8059b9b3580983)

     Conflicts:
            ci/rat-regex.txt

More details

More details for using Git and Subversion (particularly here at the ASF), see the following links:

Some older docs available at

  • No labels