Istilah dasar
Repository (repo)
Folder proyek yang di-track Git. Bisa lokal (di laptop) atau remote (di server git.oprex.id).
Branch
Cabang kerja. main atau master = batang utama. Untuk fitur baru bikin feature/xxx, untuk bug fix/yyy.
Commit
Snapshot dengan pesan. Tiap commit punya hash unik (e.g. a1b2c3d).
HEAD
Penunjuk commit terakhir di branch yang sedang aktif.
Push / Pull
- push = upload commit ke server
- pull = download commit dari server
Pull Request (PR) / Merge Request (MR)
Usulan merge branch ke main. Tim review sebelum di-merge.
Merge
Gabungin branch ke branch lain.
Conflict
Dua orang edit baris yang sama → Git minta Anda pilih versi mana yang menang. Resolve conflict = edit file → hapus marker <<<<<<< ======= >>>>>>> → keep versi yang benar.
Tag
Label ke commit tertentu, biasa dipakai untuk versi rilis: v1.0.0, v1.2.3.
Stash
Simpan perubahan sementara di kantong tersembunyi. Berguna saat lagi setengah jalan tapi perlu pindah branch dulu. git stash → kerja branch lain → git stash pop kembali.
.gitignore
File berisi pattern file yang TIDAK perlu di-track Git (mis. node_modules/, .env, *.log).
Istilah lanjutan
- Rebase — alternative ke merge, history lebih lurus
- Cherry-pick — ambil 1 commit dari branch lain
- Submodule — repo dalam repo
- Hooks — script jalan otomatis saat event (pre-commit, post-push)
- Semver — Semantic Versioning:
MAJOR.MINOR.PATCH(mis.2.4.1) - HEAD detached — checkout ke commit specific bukan branch — hati-hati commit di sini bisa hilang
Tip: pesan commit yang bagus
❌ "fix bug" — tidak jelas bug apa ✅ "Fix login form: handle email dengan + di local-part"
❌ "update" — apa yang di-update? ✅ "Add cron job untuk cleanup expired sessions"