Il-commits tajjeb huma fokussati (bidla loġika waħda) b'messaġġi ċari li jispjegaw x'inbidel u għaliex. Il-commits u l-messaġġi mfassla tajjeb jagħmlu l-istorja tal-proġett leggibli, utli għall-fehim tal-bidliet, debugging, u kollaborazzjoni.
Messaġġi ta' commit tajjeb
GOOD message structure:
Short summary line (~50 chars, imperative mood, capitalized, no period)
<blank line>
Optional body: explain WHAT and WHY (not how — the code shows how),
wrap at ~72 chars. Reference issues if relevant.
✅ GOOD:
Add user email validation to registration form
Validate email format before submission to prevent invalid
accounts. Fixes #142.
❌ BAD:
"fixed stuff", "update", "asdf", "changes", "wip"
→ vague, uninformative — useless when reviewing history later
Il-konvenzjoni tal-mood imperattiv
Write the summary as a COMMAND/instruction (imperative):
✓ "Add feature", "Fix bug", "Update docs", "Remove dead code"
✗ "Added feature", "Fixes bug", "Updating docs"
→ Convention: it reads as "this commit will [Add feature]" (matches Git's own messages).
Commits tajjeb: atomic u fokussati
✓ ATOMIC — each commit is ONE logical change (not many unrelated changes lumped together)
✓ Focused — "Add login" and "Fix typo" are SEPARATE commits, not one
✓ Working — ideally each commit leaves the code in a working state
Why: focused commits are easier to REVIEW, REVERT (undo one change cleanly),
understand, and bisect (find which commit introduced a bug).
Conventional Commits (standard popolari)
type(scope): description → feat: add login | fix: handle null | docs: update README
types: feat, fix, docs, refactor, test, chore, etc.
→ Enables automated changelogs/versioning; widely adopted in many projects.
Għaliex hu importanti
L-għarfien ta' x'inhu jagħmel commits u messaġġi ta' commit tajjeb hu validu għall-ħolqien ta' istorja tal-proġett leggibli u utli, u għalhekk hu għarfien prattiku importanti li jaffettwa ħafna l-kollaborazzjoni u l-mantenibilità. Messaġġi ta' commit tajjeb huma importanti għaliex l-istorja tal-commit hija forma kruċjali ta' dokumentazzjoni — messaġġi ċari (sommarju konċiż li jispjega x'inbidel, b'korp li jispjega għaliex meta meħtieġ) jagħmlu possibbli l-fehim ta' kif u għaliex il-kod evola, li hu invaluabbli meta tarraġa l-istorja, debugging (tifhem għaliex ġiet imħaddna bidla), jew onboarding.
Messaġġi vagi ("fixed stuff", "update", "wip") jagħmlu l-istorja inutli, u jagħmluha impossibbli li tifhem bidliet aktar tard — cost reali.
Il-konvenzjoni tal-mood imperattiv ("Add feature" mhux "Added feature") hija standard segwita ħafna ta' drabi li darba tista' tgħallmha. Il-commits tajjeb li jkunu atomic u fokussati (kull commit bidla loġika waħda, mhux bidliet multipli mhux relatati magħquda flimkien) hija ekwalment importanti: commits fokussati huma ħafna aktar faċli biex tarraġa (ir-reviewers jifhmu bidla waħda), trevert (inrevert bidla waħda b'mod nadif mingħajr ma jaffettwa oħrajn), tifhem, u bisect (issib liema commit introduċa bug) — għalhekk l-istruttura tal-commit taffettwa direttament kemm hi usable l-istorja għal debugging u kollaborazzjoni.
L-għarfien dwar Conventional Commits (il-standard type(scope): description li jippermetti changelogs u versioning awtomatiċi) hu validu għaliex huwa adopt ħafna.
Billi l-istorja tal-commit hija dokumentazzjoni importanti u commits u messaġġi tajjeb jagħmluha leggibli u utli (għall-fehim, reviewing, debugging, u kollaborazzjoni) filwaqt li dawk ħżiena jagħmluha inutli, u billi l-ħolqien ta' commits fokussati b'messaġġi ċari hu sinjal ta' prattika Git professjonali, l-għarfien ta' x'inhu jagħmel commits u messaġġi ta' commit tajjeb hu għarfien validu, prattikament relevanti għal kollaborazzjoni effettiva u istorja mantenutabbli — ħila li tdifferenzja l-developers taħrifiti u titjieb b'mod sinifikat l-usabilità ta' tul-terminu ta' proġett u l-workflow tal-tim.
