What to commit
Commit these files and directories to version control:- Source code in
src/directory - Configuration files
- Custom launch files
- Documentation files
- Package manifests (
package.xml) - Build configuration (
CMakeLists.txt,setup.py)
What not to commit
Do not commit these generated directories:build/- Build artifactsinstall/- Installed binarieslog/- Build logs.vscode/- Workspace files (already in .gitignore)- Temporary files
.gitignore file in the project.
Git workflow for custom packages
Initial setup
Committing changes
Managing TurtleBot3 source packages
The TurtleBot3 packages are cloned from upstream repositories inpost-create.sh:
Working with upstream packages
If you modify TurtleBot3 source packages:Ignoring build artifacts
The project includes a.gitignore file that excludes:
Branching strategy
Feature branches
Create separate branches for new features:Experiment branches
For experimental work that might be discarded:Cloning your workspace
To clone your workspace on a new machine:Handling package.xml files
Package manifests should always be committed. They contain:- Package metadata
- Dependencies
- Maintainer information
- License information
Checking repository verification
Thepost-create.sh script verifies package integrity:
Best practices summary
- Commit source code frequently with descriptive messages
- Never commit
build/,install/, orlog/directories - Use branches for features and experiments
- Keep package.xml and build files in version control
- Document changes in commit messages
- Fork upstream packages before modifying them
- Test builds before pushing to remote