...
Although some online documents may suggest the use of git push --tags
, you should never use this, as it pushes all tags in your repository.
Branches
The master
main
branch in a Shibboleth project repository is where work on the next feature release occurs. Maintenance work for previously released versions of the software is performed on branches named maint-
release, such as maint-3
or maint-3.4
.
...
Simple changes to repositories are often committed directly to the appropriate master
main
or maint-
branches. Permissions on these branches is set to enforce the rule that contributions should be "fast-forward" only; merge commits are not permitted.
...
The normal workflow for such a development branch would be:
- Start from the master main branch:
git checkout master main
- Create local development branch:
git checkout -b dev/my-feature
- Publish development branch:
git push -u origin dev/my-feature
- ... perform feature development ...
- ... any series of commits, merges, rebases, squashes, etc. ...
- Prepare to merge development branch:
git rebase -i mastermain
- Move back to parent branch:
git checkout mastermain
- Bring in the feature's final set of commits:
git merge --ff-only dev/my-feature
- Publish:
git push
- Delete remote development branch:
git push --delete dev/my-feature
- Delete local development branch:
git branch -d dev/my-feature
...