Professional software engineering requires Version Control. Git is the industry standard.
Never commit generated files.
- BAD:
demo.exe,scanner.o,build/ - WHY?: These can be regenerated from source. They bloat the repo and cause conflicts between OSes (Windows
.exevs Linux elf).
We created a .gitignore file to tell Git to ignore build/ and *.o. This ensures your repository stays clean.
A good commit history tells a story.
Bad Commit Message:
"fixed stuff"
Good Commit Message:
"fix(scanner): handle null terminator correctly in peek()"
Format: <type>(<scope>): <description>
feat: New featurefix: Bug fixdocs: Documentation onlystyle: Formatting, missing semi-colons, etc.refactor: Code change that neither fixes a bug nor adds a featuretest: Adding missing tests
Example History for this project:
chore(init): initial project structurefeat(scanner): implement basic character readingfeat(tokenizer): implement token grouping logictest(scanner): add unit tests for scannerdocs: add architectural overview
- Clean Repo: Only source code goes in.
- Atomic Commits: Each commit should do one thing.
- Communication: Your commit log is a communication tool for your team (and future you).