DEV Community

Cover image for Git & Kolaborasi: Panduan untuk Pemula (Lengkap dengan Analogi)
Sanudin
Sanudin

Posted on • Originally published at sanudin.dev

Git & Kolaborasi: Panduan untuk Pemula (Lengkap dengan Analogi)

🌐 Baca artikel ini dalam Bahasa Inggris di sini.

📝 Catatan tentang artikel ini
Artikel ini dibuat berdasarkan catatan belajar pribadi saya tentang version control dan Git kolaborasi. Untuk membuat catatan tersebut lebih mudah dibaca dan bermanfaat — bagi saya dan orang lain — saya menggunakan bantuan AI untuk mengembangkan dan menyusunnya menjadi artikel blog. Ide, perjalanan belajar, dan pemahamannya adalah milik saya; AI membantu di bagian penulisan dan penyajiannya.


Belajar Git itu tidak harus membingungkan. Di artikel ini, saya akan menjelaskan konsep-konsep penting dalam version control dan kolaborasi menggunakan bahasa yang sederhana — bahkan dengan analogi yang bisa dipahami anak kecil sekalipun.


Apa Itu Git?

Git adalah version control system — sistem yang merekam setiap perubahan yang kamu lakukan pada file-file proyekmu.

Bayangkan Git seperti fitur save point di video game. Setiap kali kamu menyimpan (commit), Git mengambil "foto" dari kondisi proyekmu saat itu. Kalau ada yang salah, kamu bisa kembali ke foto sebelumnya.


Repository: Gudang Proyekmu

Repository (atau "repo") adalah folder yang diawasi oleh Git. Ada dua jenisnya:

  • Local repository: ada di komputermu sendiri. Ruang kerja pribadimu.
  • Remote repository: ada di server (GitHub, GitLab, Bitbucket). Salinan "resmi" yang bisa diakses seluruh tim.

Keduanya terhubung lewat Remote URL, sehingga kamu bisa mengirim perubahan ke remote (push) atau mengambil perubahan terbaru dari sana (pull).

git init                            # Mulai memantau sebuah folder
git remote add origin <url>         # Hubungkan ke remote repo
git push origin main                # Kirim commit ke remote
git pull origin main                # Ambil update terbaru dari remote
Enter fullscreen mode Exit fullscreen mode

Analogi: Local repo adalah buku sketsamu di rumah. Remote repo adalah papan pengumuman kelas — semua orang bisa melihat dan mengaksesnya.


Commit: Save Point Proyekmu

Commit adalah snapshot dari kondisi proyekmu pada satu titik waktu. Setiap commit berisi:

  • Pesan yang menjelaskan apa yang berubah
  • ID unik (hash)
  • Timestamp
git add .                           # Staging semua perubahan
git commit -m "Tambah layout halaman utama"  # Simpan snapshot
git log --oneline                   # Lihat riwayat commit
Enter fullscreen mode Exit fullscreen mode

Tulis pesan commit yang jelas dan bermakna. Dirimu di masa depan — dan rekan timmu — akan berterima kasih.


Checkout, Reset, Revert: Mesin Waktu Git

Ketiga perintah ini berinteraksi dengan riwayat commit — tapi dengan cara yang sangat berbeda:

git checkout — Kunjungi Masa Lalu (Sementara)

Seperti mesin waktu dengan tiket visitor. Kamu bisa melihat kondisi kode di commit lama tanpa mengubah apapun secara permanen.

git checkout <commit-hash>          # Kunjungi commit lama
git checkout main                   # Kembali ke sekarang
git checkout -b branch-baru <hash>  # Buat branch baru dari commit lama
Enter fullscreen mode Exit fullscreen mode

git reset — Hapus Riwayat

Kembali ke commit tertentu dan menghapus semua yang terjadi setelahnya. Gunakan dengan hati-hati — terutama jika sudah di-push ke remote.

git reset --soft HEAD~1             # Undo commit terakhir, perubahan tetap ada (staged)
git reset --hard HEAD~1             # Undo commit terakhir, perubahan ikut terhapus
Enter fullscreen mode Exit fullscreen mode

git revert — Undo yang Aman

Membuat commit baru yang membalikkan efek dari commit sebelumnya. Riwayat tetap utuh — pilihan paling aman saat bekerja di repo bersama.

git revert <commit-hash>            # Undo sebuah commit dengan aman
Enter fullscreen mode Exit fullscreen mode

Panduan praktis: Kalau sudah di-push, gunakan revert. Kalau belum, reset tidak masalah.


Branch: Jalur Paralel untuk Kode

Branch adalah jalur pengembangan yang terpisah. Kamu bisa membuat branch untuk mengerjakan fitur atau perbaikan bug tanpa menyentuh branch main yang stabil.

git switch -c feature/dark-mode     # Buat dan pindah ke branch baru
git switch main                     # Kembali ke main
git branch -d feature/dark-mode     # Hapus branch yang sudah di-merge
git push origin feature/dark-mode   # Push branch ke remote
Enter fullscreen mode Exit fullscreen mode

Konvensi penamaan branch yang umum:

Tipe Prefix Contoh
Fitur baru feature/ feature/dark-mode
Perbaikan bug fix/ fix/login-redirect
Hotfix mendesak hotfix/ hotfix/payment-crash

Analogi: Bayangkan sungai yang mengalir. Branch adalah anak sungai yang memisah diri untuk menjelajahi jalur lain — dan nantinya bergabung kembali ke sungai utama.


Stash: Tombol Pause untuk Pekerjaan yang Belum Selesai

Kamu sedang di tengah-tengah mengerjakan sebuah fitur. Kode masih berantakan, belum siap untuk di-commit. Tiba-tiba team lead bilang: "Bisa tolong perbaiki bug itu di branch main sekarang?"

Kamu tidak bisa switch branch dengan perubahan yang belum di-commit. Tapi kamu juga belum siap commit. Jawabannya: simpan dulu dengan stash.

Analogi: Kamu sedang menggambar tapi meja harus dipakai untuk hal lain. Kamu dengan rapi menyimpan gambar dan pensil ke dalam laci. Nanti kamu buka lacinya dan lanjut persis dari titik yang sama.

git stash                           # Simpan pekerjaan sementara
git switch fix/some-bug             # Bebas pindah branch
# ... perbaiki bug, commit, balik lagi ...
git switch feature/dark-mode
git stash pop                       # Kembalikan pekerjaanmu
Enter fullscreen mode Exit fullscreen mode

Menambahkan label membuat stash lebih mudah dikelola:

git stash push -m "WIP: palet dark mode"     # Stash dengan nama
git stash list                               # Lihat semua stash
git stash pop                                # Kembalikan stash terbaru
git stash apply stash@{1}                    # Kembalikan stash tertentu (tetap di list)
git stash drop stash@{1}                     # Hapus stash tertentu
git stash -u                                 # Sertakan file baru yang belum di-track
Enter fullscreen mode Exit fullscreen mode

Merge & Pull Request: Menyatukan Pekerjaan

Saat fiturmu selesai, kamu merge branch-mu kembali ke main.

git switch main
git merge feature/dark-mode
Enter fullscreen mode Exit fullscreen mode

Di GitHub/GitLab, proses ini biasanya dilakukan lewat Pull Request (PR):

  1. Push branch-mu dan buka PR
  2. Rekan tim me-review kode dan meninggalkan komentar
  3. Setelah disetujui, kode di-merge

Tiga Opsi Merge

Metode Yang Terjadi
Merge commit Semua commit dipertahankan + merge commit ditambahkan
Squash and merge Semua commit digabung jadi satu
Rebase and merge Commit diputar ulang di atas main, tanpa merge commit

Menangani Conflict

Ketika dua branch mengedit baris yang sama, Git tidak bisa merge otomatis. Kamu akan melihat:

<<<<<<< HEAD
const msg = "Halo!";
=======
const msg = "Hai semuanya!";
>>>>>>> feature/dark-mode
Enter fullscreen mode Exit fullscreen mode

Selesaikan secara manual, lalu:

git add <file>
git commit
Enter fullscreen mode Exit fullscreen mode

Code Review: Pintu Gerbang Kualitas

Sebelum PR di-merge, seseorang akan me-review kodenya. Reviewer yang baik memeriksa:

  • Apakah logikanya benar?
  • Apakah kode mudah dibaca dan penamaannya jelas?
  • Apakah ada test yang cukup?
  • Apakah kode lebih kompleks dari yang seharusnya?
  • Apakah sesuai dengan style guideline tim?

Code review bukan sekadar mencari kesalahan — ini juga cara pengetahuan menyebar di seluruh tim. Jangan lupa juga memberikan pujian ketika kode sudah ditulis dengan baik.


Fork & Clone: Berkontribusi Tanpa Akses

Forking menyalin repo orang lain ke akun GitHub-mu. Cloning menyalin repo ke komputer lokalmu.

Alur kontribusi open source yang umum:

# 1. Fork di GitHub (klik tombol Fork)

# 2. Clone fork-mu
git clone https://github.com/username-kamu/nama-proyek.git

# 3. Tambahkan repo asli sebagai upstream
git remote add upstream https://github.com/pemilik-asli/nama-proyek.git

# 4. Buat branch, buat perubahan, push
git switch -c fix/typo-readme
git add . && git commit -m "Perbaiki typo di README"
git push origin fix/typo-readme

# 5. Buka Pull Request di GitHub
Enter fullscreen mode Exit fullscreen mode

Sinkronisasi Fork-mu

git fetch upstream
git switch main
git merge upstream/main
git push origin main
Enter fullscreen mode Exit fullscreen mode

Perbedaan Fork vs Clone: Fork menyalin ke akun GitHub-mu (remote). Clone menyalin ke komputermu (lokal). Keduanya tidak mempengaruhi repo asli.


Tips untuk Mulai Berkontribusi

Kalau kamu baru ingin terjun ke open source:

  1. Mulai dari yang kecil — perbaiki typo di dokumentasi, tambahkan komentar, perbaiki README. Jangan langsung menyerang bug paling kompleks.
  2. Pelajari ekosistem proyek — baca README.md, CONTRIBUTING.md, dan riwayat commit untuk memahami konvensi yang digunakan.
  3. Ikuti konvensi yang ada — cara menulis commit, penamaan branch, format PR description.

Aplikasi Git GUI: Tidak Harus Selalu Pakai Terminal

Mengetahui perintahnya membuatmu jadi developer yang lebih kuat — tapi kamu tidak harus mengetik di terminal setiap hari. Ada banyak aplikasi GUI (Graphical User Interface) yang memungkinkan kamu commit, branch, merge, dan stash hanya dengan klik, plus visualisasi riwayat repo yang mudah dipahami.

Berikut yang paling populer:

Aplikasi Platform Harga Cocok Untuk
GitHub Desktop Mac, Windows Gratis Pemula, pengguna GitHub
GitLens (ext. VS Code) Semua OS Gratis / Berbayar Developer yang sehari-hari di VS Code/Cursor
GitKraken Mac, Win, Linux Gratis (terbatas) / Berbayar Power user visual
Fork Mac, Windows Gratis trial / ~$50 Keseimbangan kecepatan & fitur
Sourcetree Mac, Windows Gratis Pengguna Atlassian/Bitbucket

GitHub Desktop adalah yang paling sederhana — dibuat oleh GitHub, fokus pada hal-hal esensial. GitLens adalah ekstensi VS Code yang menambahkan inline blame, visual commit graph, dan manajemen stash langsung di dalam editor-mu. GitKraken punya tampilan commit graph yang keren dan fitur drag-and-drop untuk merge. Fork menawarkan keseimbangan yang baik antara kecepatan dan fitur. Sourcetree (buatan Atlassian) gratis dan kaya fitur, terutama kalau kamu pakai Bitbucket.

Meskipun pakai aplikasi GUI sehari-hari, memahami perintah dasarnya tetap penting — untuk debugging dan bekerja di server yang tidak punya GUI. Anggap aplikasi GUI sebagai lapisan produktivitas di atas pengetahuan Git-mu, bukan penggantinya.


Ringkasan

Konsep Singkatnya
Repository Gudang untuk file dan riwayat proyekmu
Commit Snapshot tersimpan dengan pesan
Checkout Kunjungi commit lama sementara
Reset Hapus riwayat commit (hati-hati)
Revert Undo commit dengan aman
Branch Jalur pengembangan terpisah
Stash Simpan sementara pekerjaan yang belum selesai
Merge Gabungkan dua branch
Pull Request Permintaan formal untuk review dan merge
Fork Salin repo orang lain ke akunmu
Clone Salin repo ke komputer lokalmu

Mulai dari yang kecil, commit sesering mungkin, dan jangan takut membuat branch baru. Satu commit pada satu waktu. 🚀


Originally published as a series (Git for Everyone) at: What Is Git, Repository, and Commit | Traveling Through Time — Checkout, Reset, and Revert
| Branches, Stash, and Git Workflow | Merge, Pull Requests, and Code Reviews | Fork, Clone, and Open Source Collaboration | Git GUI Apps — You Don't Have to Use the Terminal

Top comments (0)