Working together
Branches & merge requests
How teams work in Lumbung: every change is made on its own branch, proposed through a merge request (MR), reviewed, then merged into the main branch. The main branch always stays ready to use.
1. Create a branch
git switch main
git pull
git switch -c feature/qris-payment
Good branch names describe the content: feature/โฆ, fix/โฆ, docs/โฆ.
2. Commit & push
git add .
git commit -m "Add QRIS payment"
git push -u origin feature/qris-payment
After pushing, the terminal prints a "Buat merge request untuk feature/qris-payment" (create merge request) link โ open it.
3. Open a merge request
In the MR form:
- Title & description โ explain what changed and why. Write
Closes #12so issue #12 closes automatically when the MR is merged. - Reviewers โ people asked to check it. They get notified and the MR shows on their home page (Waiting for your review).
- Draft โ not ready for review? Tick Mark as draft (or start the title with
Draft:). Draft MRs can't be merged.
No terminal needed: edit a file in the browser (Edit button) and choose Create a new branch & open a merge request.
4. Review
Open the MR's Changes tab:
- Hover a line and click + to comment on that line.
- Switch between Unified and Side by side views.
- Every new push creates a new version; pick a version to see what changed since the last review. Comments on lines that changed are marked outdated.
- Reviewers press Approve when satisfied. Authors can't approve their own MR.
- Mark finished discussions with Resolve.
5. Merge
The box in the Overview tab lists unmet requirements โ conflicts, approvals, open threads, or draft status. When everything is green, a maintainer picks a method:
| Method | Result |
|---|---|
| Merge commit | full branch history + one merge commit |
| Squash & merge | all MR commits squashed into one |
| Fast-forward | no merge commit; only if the target hasn't moved |
Tick Delete source branch to keep branches tidy after merging.
Team rules
Maintainers can configure in repo Settings:
- Protected branches โ e.g.
mainmay only change through MRs merged by maintainers. - Minimum approvals before merging.
- All threads must be resolved before merging.
- Default merge method.