Automatic Feature Branches
Every feature request gets its own git branch, automatic commits at each pipeline phase, and safe rebase-and-merge when the review passes. Zero manual git commands.
How it works
Branch creation
When orchestration starts, Iter creates a feature branch from main. Branch names follow the pattern feat/req-001-add-user-auth, derived from the request description.
Phase-based commits
Changes are committed at each pipeline phase - after execution, after review pass, and after each fix cycle. Commit messages include request ID, run ID, and phase metadata.
Safe merge
When the review returns PASS, Iter rebases the feature branch onto main and fast-forward merges. This guarantees a clean, linear commit history with no merge commits.
Conflict handling
If rebase detects conflicts, the merge is aborted and the feature branch is preserved intact. The request is marked with conflict status so you can resolve manually.
Branch lifecycle
# Iter handles all of this automatically:
▶ Request: "Add user authentication to API"
├─ git checkout -b feat/req-001-add-user-authentication
├─ [execution phase]
│ └─ git commit "iter: Add user authentication [execution]"
├─ [review phase → PASS]
│ └─ git commit "iter: Add user authentication [review-pass]"
├─ git rebase main
├─ git checkout main
└─ git merge --ff-only feat/req-001-add-user-authentication Configuration
Settings
git.enabledEnable/disable git integrationbranch_per_requestOne branch per feature requestmerge_on_completeAuto-merge when review passesauto_commitCommit at each pipeline phasebranch_prefixBranch name prefix (default: feat/)
Fail-safe design
- Git failures never halt the pipeline
- All operations are logged as structured events
- Conflicts preserve work on the feature branch
- Repo is lazy-initialized if not present
- Re-runs reuse existing branches automatically