This document outlines the contribution and development practices to ensure a clean and maintainable Git history.
All commits must be signed off to certify that the contributor agrees to the Developer Certificate of Origin (DCO). This is a legal statement indicating that you wrote the code or have the right to contribute it.
When creating a commit, use the -s
flag:
git commit -s -m "feat: add token validation logic"
This will append a Signed-off-by
line with your name and email address, matching the information in your Git configuration.
Example:
Signed-off-by: Jane Doe <[email protected]>
If you forgot to sign off a commit, you can amend the last commit:
git commit --amend -s
Or for multiple commits, you can rebase and add the sign-offs:
git rebase -i HEAD~N # replace N with number of commits to edit
# Then mark each commit with 'edit' and sign off each one:
git commit --amend -s
git rebase --continue
We follow a linear commit history to keep the Git log clean and easy to follow. This means no merge commits should be introduced.
-
Before pushing your branch, always rebase on the latest
main
:git fetch origin git rebase origin/main
-
If there are any conflicts, resolve them and continue the rebase:
git status # See conflicted files # Edit and resolve conflicts git add <resolved-files> git rebase --continue
-
Force push your rebased branch to update your pull request:
git push --force-with-lease
- They clutter the history.
- They make it harder to identify what changes were made.
- They complicate tools that generate changelogs or audit logs.
- Use clear, concise commit messages (preferably using Conventional Commits).
- Squash commits as needed before submission to keep the history clean.
- Open a pull request only after your branch is up-to-date and rebased on
main
.