- NEVER push on
mainbranch. - ALWAYS use Pull Requests when adding new features or bug fix.
Use the following convention for branch names
namespace/feature
Example : build/conan-configuration
Consider using relevant branch namespaces (
ecs,network,graphics...)
Follow that guide to see how to write good commit message.
Guidelines:
-
Group Commits: Each commit should represent a meaningful change (e.g. implement feature X, fix bug Y, ...).
-
For instance, a PR should not look like 1) Add Feature X 2) Fix Typo 3) Changes to features X 5) Bugfix for feature X 6) Fix Linter 7) ...
Instead, these commits should be squashed together into a single "Add Feature" commit. -
Each commit should work on its own: it must compile, pass the linter and so on.
-
This makes life much easier when using
git log,git blame,git bisect, etc. -
For instance, when doing a
git blameon a file to figure out why a change was introduced, it's pretty meaningless to see a Fix linter commit message. "Add Feature X" is much more meaningful. -
Use
git rebase mainto group commits together and rewrite their commit message -
To add changes to the previous commit, use
git commit --amend -s. This will change the last commit (amend) instead of creating a new commit. -
Format: Use the imperative mood in the subject line: "If applied, this commit will
_your subject line here_"
The recommended workflow is to clone the repository from aurelien-boch/ziapi and open pull requests directly from the repository.
git clone git@github.com:aurelien-boch/ziapi.git# Create a branch
git checkout -b mybranch
# Make changes to your branch
# ...
# Add your change
git add [filenames]
# Commit your change
git commit -s -m "Add new feature that will take us to Mars"
# Push your change
git push# Go to main
git checkout main
# Pull change
git pull
# Go to working branch
git checkout working-branch
# Rebase from main
git rebase main
# Apply rebase
git push -f