Panduan Git Branching untuk Pemula

| | Git - Version Control
Panduan Git Branching untuk Pemula

branch itu cabang pengembangan yang terpisah dari branch utama. dengan branch, kalian bisa ngembangin fitur baru tanpa ganggu kode yang stabil. sebelum nyemplung ke branching, pastikan kalian sudah lancar sama perintah dasar git dan tahu cara upload project ke github.

saya dulu kerja tanpa branch, semua perubahan langsung ke main, dan sekali saja ada fitur setengah jadi yang ikut ter-upload, seluruh tim ikut kena dampaknya. sejak pakai branching, fitur bisa dikembangin dengan tenang dan digabung cuma pas bener-bener siap. kebiasaan ini yang paling saya syukuri dalam kerjaan git sehari-hari.

1. Konsep Branch

bayangin branch kayak copy timeline project yang bisa jalan sendiri:

main:  A---B---C---D---E
                    \
feature:             F---G---H
  • main, branch utama, tempat kode siap production
  • feature, branch buat fitur baru, nanti digabung balik ke main

tiap branch itu satu garis commit yang terpisah. kerja di feature tidak akan nyentuh main sampai kalian sengaja merge. itu artinya, kalau fiturnya gagal, tinggal buang branch-nya, main tetap aman.

2. Perintah Branch Dasar

git branch                    # Lihat daftar branch (tanda * = branch aktif)
git branch nama-branch        # Buat branch baru
git switch nama-branch        # Pindah ke branch (cara baru, Git 2.23+)
git checkout nama-branch      # Pindah ke branch (cara lama)
git switch -c nama-branch     # Buat + langsung pindah
git checkout -b nama-branch   # Sama, versi lama

soal switch versus checkout, dua-duanya bisa pindah branch. bedanya, git switch itu perintah baru yang khusus buat urusan branch, jadi lebih jelas dan tidak bikin bingung kayak checkout yang punya banyak fungsi lain. kalau git kalian versi 2.23 ke atas, saya saranin biasakan git switch.

3. Merge, Gabungkan Branch

setelah fitur di branch selesai, waktunya gabungin ke main:

git switch main         # Pindah ke branch tujuan
git merge feature-login # Gabungkan feature-login ke main

urutan ini penting: merge itu jalan di branch tempat kalian berdiri, dan yang digabung adalah branch yang disebut. jadi kalau mau fitur masuk ke main, berdiri di main dulu, baru merge.

kalau branch target tidak punya commit baru sejak branch fitur dibuat, git bakal pakai fast-forward merge, tinggal majuin pointer tanpa bikin commit gabungan. kalau dua-duanya sama-sama maju, git bikin merge commit yang ngegabungin dua garis sejarah.

4. Pull Request (PR)

PR itu bukan perintah git, tapi fitur github dan gitlab buat minta penggabungan branch lewat review:

  1. buat fitur di branch baru
  2. push ke github: git push origin feature-login
  3. buka github, klik Compare & pull request
  4. tulis deskripsi perubahan
  5. tim review, kasih komentar, approve
  6. klik Merge

alur ini standar di hampir semua tim. jangan pernah langsung merge ke main tanpa PR kalau project-nya kerja bareng, karena PR itu lapisan pengaman terakhir sebelum kode masuk production.

5. Menghapus Branch

branch yang sudah di-merge sebaiknya dihapus biar repo bersih:

# Hapus branch lokal (aman, nolak kalau belum di-merge)
git branch -d feature-login

# Hapus branch lokal (paksa, apa pun kondisinya)
git branch -D feature-login

# Hapus branch di GitHub
git push origin --delete feature-login

-d huruf kecil itu safe delete, git bakal nolak kalau branch belum di-merge. -D huruf besar itu paksa, langsung hapus tanpa tanya. biasakan -d dulu, naik ke -D cuma kalau kalian yakin perubahan di branch itu memang mau dibuang.

6. Merge Conflict

conflict terjadi kalau file yang sama diubah di dua branch berbeda, dan git tidak bisa mutusin mana yang benar:

git merge feature-login
# Auto-merging index.html
# CONFLICT (content): Merge conflict in index.html

cara resolve:

  1. buka file yang conflict, cari tiga marker ini:
    • <<<<<<< HEAD, awal versi dari branch kalian
    • =======, pembatas dua versi
    • >>>>>>> feature-login, akhir versi dari branch lain
  2. pilih versi mana yang dipakai, atau gabung dua-duanya, lalu hapus ketiga marker
  3. git add index.html buat nandain conflict sudah beres
  4. git commit buat nyelesaiin merge

contoh isi file yang conflict:

<<<<<<< HEAD
<h1>Selamat Datang di Toko</h1>
=======
<h1>Welcome to Store</h1>
>>>>>>> feature-inggris

tinggal pilih satu judul, hapus marker dan baris yang tidak dipakai, selesai. VS Code bahkan kasih tombol “Accept Current”, “Accept Incoming”, atau “Accept Both” di atas conflict, jadi tidak harus edit manual.

7. Git Flow, Strategi Branching

buat project tim, branch sembarangan bakal cepat kacau. Git Flow itu strategi yang paling banyak dipakai:

main ───────●──────────●────
            \        /
develop      ●──●──●──
              \     /
feature        ●──●
  • main, kode production, cuma di-update lewat merge
  • develop, tempat kode hasil pengembangan berkumpul
  • feature/*, branch buat fitur baru, bercabang dari develop
  • hotfix/*, branch perbaikan darurat di production

buat project kecil atau pribadi, strategi sederhana sudah cukup: kerja di main, bikin branch per fitur, merge balik. Git Flow lebih pas buat tim besar dengan rilis berkala.

8. Praktik Terbaik

  • satu branch buat satu fitur atau satu fix, jangan campur
  • nama branch deskriptif dan konsisten: fitur/login, fix/typo-readme, bugfix/keranjang-null
  • hapus branch setelah merge biar daftar branch tidak menumpuk
  • selalu git pull sebelum mulai kerja biar mulai dari kondisi terbaru
  • commit sering dengan pesan yang jelas, branch berantakan dengan commit raksasa itu sama buruknya

Kesimpulan

  • branch itu cabang pengembangan terpisah, kode stabil di main tetap aman
  • git switch -c nama buat bikin dan pindah branch sekaligus
  • merge jalan di branch tujuan, git switch main dulu baru git merge fitur
  • conflict itu file diubah di dua branch, resolve dengan hapus marker lalu add dan commit
  • pull request itu minta review sebelum merge, standar kerja tim
  • hapus branch yang sudah selesai pakai git branch -d dan git push origin --delete
  • git flow itu strategi branch buat project tim, main untuk production, develop untuk pengembangan

Baca Juga Mengenai :


Pertanyaan yang Sering Diajukan

Apa itu branch di Git?

branch itu cabang pengembangan yang terpisah dari branch utama. kalian bisa ngembangin fitur baru di branch tanpa ganggu kode yang stabil di main, dan baru digabung kalau fiturnya sudah matang.

Apa bedanya git checkout dan git switch?

dua-duanya buat pindah branch, tapi git switch lebih baru (git 2.23 ke atas) dan khusus buat urusan branch, sedangkan git checkout lebih tua dan bisa lebih banyak hal. buat pemula, git switch lebih jelas dan disarankan.

Bagaimana cara menyelesaikan merge conflict?

buka file yang conflict, cari marker kurang dari, sama dengan, dan lebih dari. pilih versi mana yang dipakai atau gabungkan dua-duanya, hapus marker, lalu git add file itu dan git commit.

Apa bedanya git branch -d dan -D?

huruf kecil -d itu safe delete, git nolak hapus kalau branch belum di-merge. huruf besar -D itu force delete, langsung hapus apa pun kondisinya. pakai -d dulu biar aman.

Kapan harus pakai pull request?

kalau kerja tim atau open source. pull request itu cara minta review sebelum branch digabung ke main, jadi ada orang lain yang ngecek kode kalian dulu, dan diskusi bisa terjadi di sana.

Bagaimana cara hapus branch di GitHub?

di GitHub bisa lewat tombol delete di halaman pull request setelah merge, atau dari lokal pakai git push origin --delete nama-branch, lalu hapus branch lokalnya pakai git branch -d nama-branch.

Sigit Nurhanafi avatar
Full-stack developer & technical writer. Berpengalaman di PHP, Laravel, NodeJS, MySQL, dan Python. Aktif menulis tutorial pemrograman dan maintaining open-source projects di PemburuKode sejak 2021.