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
| Model | Cara kerja | Cocok untuk |
|---|---|---|
| Trunk-based | Semua orang commit sering ke main, branch sangat pendek | Tim kecil, CI kuat, rilis sering |
| GitHub Flow | main + feature branch + pull request | Sebagian besar tim produk |
| Git Flow | main, develop, feature, release, hotfix | Rilis 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 ●──●- Buat branch dari
main. - Commit perubahan.
- Push dan buka pull request.
- CI berjalan dan reviewer memeriksa.
- Merge setelah lolos.
- 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| Perintah | Fungsi |
|---|---|
add -p | Pilih perubahan per hunk |
commit | Simpan snapshot |
fetch | Ambil perubahan tanpa merge |
pull --rebase | Ambil lalu rebase |
rebase | Rapikan riwayat |
cherry-pick | Ambil satu commit ke branch lain |
tag | Tandai rilis |
Conventional Commits
Format commit yang konsisten memudahkan changelog otomatis dan pembacaan riwayat.
<type>(<scope>): <deskripsi>| Type | Fungsi |
|---|---|
feat | Fitur baru |
fix | Perbaikan bug |
docs | Dokumentasi |
refactor | Perubahan kode tanpa ubah perilaku |
test | Test |
ci | Perubahan pipeline |
chore | Maintenance |
perf | Peningkatan 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.0Gunakan 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.1Hotfix harus tetap melalui review dan CI. Jangan memotong proses karena terburu-buru.
Rebase vs merge
| Aspek | Merge | Rebase |
|---|---|---|
| Riwayat | Bercabang, ada merge commit | Linear |
| Keamanan | Aman untuk branch bersama | Jangan rebase branch publik |
| Konflik | Diselesaikan sekali | Bisa berulang |
| Kegunaan | Integrasi branch | Merapikan 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_StoreJika 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-endpointSetelah 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-endpointRingkasan
- 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.
Paket 2 · Praktik Lanjutan
Sepuluh modul lanjutan dari Git & CI/CD, deployment produksi, high availability, performa, database, observability, DevSecOps, otomasi infrastruktur, hingga Kubernetes.
GitHub & GitLab Fundamentals
Memahami repository, organisasi, issue, branch protection, release, package registry, dan pengaturan akses di GitHub serta GitLab.