Follow the Conventional Commits format:
(type)scope: messagegit commit -m "(chore)storage: added B+Tree index support"- Keep each commit focused on one logical change, don't mix refactoring and feature additions in the same commit. Commit Types:
feat(new feature)chore(maintenance)refactorfixdocstestmisc
Create a Feature Branch when a starting a new development phase.
git checkout -b feature/btree-indexUse **Tags** to mark important commits with semantic versioning `MAJOR.MINOR.PATCH`
v1.0.0 # Major release
v1.1.0 # Minor feature added
v1.1.1 # Patch fixCreate a **Release Branch** when a milestone is reached:
git checkout -b release/v1.0.0Then go to GitHub → Releases → New Release and attach the tag.
Tags Utils:
### New Tag
git tag -a v1.0.0 -m "First stable release"
git push origin v1.0.0
### Delete Tag
git tag -d v1.0.0
git push origin --delete v1.0.0
### Listing & Details
git tag
git show v1.0.0
### Checkout & Branching
git checkout v1.0.0
git checkout -b fix-branch v1.0.0Consider writing a CHANGELOG.md file when pushing a new release. You can just generate one:
git log --pretty=format:"- %s" v1.0.0 -- v1.1.0 >> CHANGELOG.mdOtherwise follow this structure if you need to manually write it:
# Changelog
## [1.1.0] - 2025-02-09
### Added
- Support for transactions in the KV store.
- Improved B+Tree indexing performance.
### Fixed
- Concurrency issue in the write-ahead log.
- Memory leak in database replication.
## [1.0.0] - 2025-01-15
### Added
- Initial release with B+Tree and KV store.