Open
Description
High-level description of how version systems are used by professional engineers.
Basic
- Only version source code (exceptions...)
- Do NOT version generated code (exceptions...)
- Have places for pulling and pushing generated files (or packages). (dev and prod areas)
- Version build scripts, and tool configurations
- Follow a branching model
Branches
- Use the git-flow branching model. It works for large and small products.
- main - only stable releases are committed on this branch
- develop - new code requires test, and all tests pass (process for if tests fail...)
- feature/branches - code can be checked in at any time, even if tests fail. This branch can be skipped if you are the only developer.
- release/branches - same requirements as "develop" plus all is cleaned up and packaged. The release/branch part can be skipped if you have a small team and small product. Just merge develop to main when it is stable and packaged.