Paket 2 · Praktik LanjutanModul A — Git, GitHub & GitLab

Git Workflow untuk DevOps

Menerapkan alur kerja Git yang disiplin untuk kolaborasi, rilis, hotfix, dan otomasi pipeline.

Git adalah sumber kebenaran untuk kode dan konfigurasi. Di DevOps, alur kerja Git harus mendukung perubahan kecil, review cepat, riwayat jelas, dan rilis yang dapat dilacak.

Prinsip workflow DevOps

  • Commit kecil dan fokus — satu commit untuk satu perubahan logis.
  • Branch berumur pendek — kurangi konflik dan merge besar.
  • Review sebelum merge — kualitas dan berbagi pengetahuan.
  • Otomasi pada setiap push — lint, test, build, scan.
  • Rilis bertag — versi yang dapat dilacak dan di-rollback.
  • Proteksi branch utama — tidak ada push langsung ke main.

Model branching

ModelCara kerjaCocok untuk
Trunk-basedSemua orang commit sering ke main, branch sangat pendekTim kecil, CI kuat, rilis sering
GitHub Flowmain + feature branch + pull requestSebagian besar tim produk
Git Flowmain, develop, feature, release, hotfixRilis terjadwal, versi paralel

Untuk pipeline modern, trunk-based atau GitHub Flow lebih umum karena mengurangi branch yang menggantung lama.

GitHub Flow sederhana

main ────●────────●────────●────────●────▶
          \      /          \      /
feature/A  ●────●            \    /
feature/B                     ●──●
  1. Buat branch dari main.
  2. Commit perubahan.
  3. Push dan buka pull request.
  4. CI berjalan dan reviewer memeriksa.
  5. Merge setelah lolos.
  6. Hapus branch.

Perintah Git penting

git status
git switch -c feature/login
git add -p
git commit -m "feat(auth): tambah validasi login"
git push -u origin feature/login
git fetch --prune
git rebase origin/main
git log --oneline --graph --decorate -15
PerintahFungsi
add -pPilih perubahan per hunk
commitSimpan snapshot
fetchAmbil perubahan tanpa merge
pull --rebaseAmbil lalu rebase
rebaseRapikan riwayat
cherry-pickAmbil satu commit ke branch lain
tagTandai rilis

Conventional Commits

Format commit yang konsisten memudahkan changelog otomatis dan pembacaan riwayat.

<type>(<scope>): <deskripsi>
TypeFungsi
featFitur baru
fixPerbaikan bug
docsDokumentasi
refactorPerubahan kode tanpa ubah perilaku
testTest
ciPerubahan pipeline
choreMaintenance
perfPeningkatan performa

Contoh:

git commit -m "fix(api): tangani timeout koneksi database"
git commit -m "ci: tambah cache npm pada workflow"

Tag dan rilis

git tag -a v1.4.0 -m "Rilis 1.4.0"
git push origin v1.4.0
git tag
git show v1.4.0

Gunakan Semantic Versioning:

MAJOR.MINOR.PATCH
1.4.0
  • MAJOR — perubahan tidak kompatibel.
  • MINOR — fitur baru kompatibel.
  • PATCH — perbaikan bug.

Tag memicu pipeline rilis di banyak organisasi.

Hotfix

git switch -c hotfix/payment-timeout main
# perbaiki, commit, buka PR
git tag -a v1.4.1 -m "Hotfix 1.4.1"
git push origin v1.4.1

Hotfix harus tetap melalui review dan CI. Jangan memotong proses karena terburu-buru.

Rebase vs merge

AspekMergeRebase
RiwayatBercabang, ada merge commitLinear
KeamananAman untuk branch bersamaJangan rebase branch publik
KonflikDiselesaikan sekaliBisa berulang
KegunaanIntegrasi branchMerapikan branch lokal

Jangan rebase branch yang sudah dibagikan

Rebase menulis ulang commit hash. Jika orang lain sudah memakai branch tersebut, riwayat mereka akan rusak. Rebase hanya branch milik Anda yang belum dibagikan.

File yang tidak boleh masuk Git

.gitignore:

node_modules/
.env
*.log
dist/
coverage/
.DS_Store

Jika rahasia sudah terlanjur ter-commit, hapus dari riwayat dan rotasi kredensial. Menghapus file di commit baru tidak cukup.

Praktik: alur fitur lengkap

git switch main
git pull --ff-only
git switch -c feat/health-endpoint

# lakukan perubahan
git add -p
git commit -m "feat(api): tambah endpoint health"

git fetch origin
git rebase origin/main
git push -u origin feat/health-endpoint

Setelah PR disetujui dan CI hijau:

git switch main
git pull --ff-only
git merge --squash feat/health-endpoint
git commit -m "feat(api): tambah endpoint health (#42)"
git push origin main
git branch -d feat/health-endpoint

Ringkasan

  • Workflow DevOps menekankan commit kecil, branch pendek, review, dan otomasi.
  • GitHub Flow cocok untuk banyak tim; trunk-based untuk rilis sangat sering.
  • Conventional Commits dan tag SemVer membuat rilis mudah dilacak.
  • Lindungi branch utama dan jangan pernah commit rahasia.

Selanjutnya

Pelajari platform kolaborasinya di GitHub & GitLab Fundamentals.

On this page