Saltar al contenido
AKOS
Todos los packs
StableDevOpsgit

Git Workflow Practice

Operationalizes disciplined git usage: commit hygiene, branching strategy, and history practices that keep a repository's history a useful record rather than noise.

gitversion-controlbranchingcommitsconventional-commits

Principios

  • · GT1 — Commits are atomic: one logical change per commit, each independently reviewable and (ideally) revertable.
  • · GT2 — Commit messages state the why, not just the what; a conventional-commits-style prefix (feat:, fix:, refactor:) aids scanning history.
  • · GT3 — Feature branches are short-lived (days, not weeks); long-running branches are rebased/merged from main frequently to minimize conflict risk.
  • · GT4 — Force-push is used only on branches not shared with others, or with explicit team coordination.
  • · GT5 — Sensitive data (secrets, credentials) never enters history — even a later "removal" commit leaves it in history forever without a rewrite.

Patrones

  • · A commit touching unrelated files/concerns → split into separate commits before pushing.
  • · A commit message that's just "fix" or "wip" → rewrite to state what and why before it becomes permanent history.
  • · A feature branch alive for weeks with major drift from main → rebase/merge from main now, don't wait for a painful conflict later.
  • · About to force-push → check if anyone else has pulled this branch first.
  • · Accidentally committed a secret → rotate the secret immediately; history rewrite alone isn't sufficient if it was ever pushed.

Riesgos

  • · "wip" / "fix" commit messages — permanent history with no useful information for future archaeology.
  • · Mega-commits — one commit touching 60 files across unrelated features, impossible to review or bisect meaningfully.
  • · Committed secrets — API keys/passwords committed then "removed" in a later commit, still fully present in history for anyone who clones.
  • · Force-push to shared branches — rewriting main/shared branch history, breaking every collaborator's local checkout silently.
  • · Weeks-long feature branches — massive drift from main producing a merge-conflict nightmare at integration time.

Checklist

  • [ ] No secrets/credentials in commit history. (GT-E3)
  • [ ] Commits are atomic, no unrelated changes mixed. (GT-E2)
  • [ ] Commit messages follow type: description format with why explained. (GT-E1)
  • [ ] No force-push to shared/main branches. (GT-E4)
  • [ ] Consistent merge strategy across the repo. (GT-E5)
  • [ ] .gitignore configured appropriately from project start. (GT-E6)

Fuentes

En la bibliografía AKOS

Este pack cita las siguientes fuentes registradas en el índice bibliográfico:

Explorar todas las fuentes →