Kursus
Jika Anda pernah mengerjakan proyek coding kelompok, Anda tahu betapa cepatnya semuanya bisa tak terkendali saat banyak orang mencoba memperbarui file yang sama secara bersamaan. Konflik muncul, bug menyelinap, dan progres terhenti. Di sinilah branch Git berperan—bukan sebagai trik tingkat lanjut, melainkan sebagai fondasi pengembangan paralel yang rapi.
Dalam Git, membuat branch bukan hanya dianjurkan; itu sudah menjadi ekspektasi. Baik saat bereksperimen dengan fitur baru, memperbaiki bug, atau meninjau kode orang lain, branch memungkinkan Anda bekerja tanpa saling mengganggu. Anda bisa mencoba sesuatu, berulang kali memperbaiki, lalu mengintegrasikan perubahan dengan rapi ke basis kode utama.
Panduan ini membahas dasar-dasar branching di Git. Kita akan mulai dengan git branch dan git checkout, lalu melihat lebih dekat bagaimana branch dibuat, dikelola, digabungkan, dan dihapus. Kita juga akan membahas praktik terbaik agar alur kerja Anda bebas konflik. Harapannya, di akhir panduan ini, Anda tidak sekadar menghafal perintah: Anda akan lebih memahami alur kerja. Jika ini menarik bagi Anda dan ingin terus berlatih, kursus Introduction to GitHub Concepts kami adalah tempat yang tepat untuk mulai.
Memahami Branch Git
Sekarang setelah latar sudah ditetapkan, mari kita uraikan apa itu branch Git. Intinya, branch Git bukan folder terpisah atau salinan penuh basis kode Anda; ini hanyalah penunjuk ringan ke commit tertentu. Inilah salah satu alasan Git menonjol dibanding sistem kontrol versi lama: branching cepat, murah, dan menjadi pusat alur kerja harian.
Bayangkan branch sebagai garis waktu. Saat Anda membuat branch baru, pada dasarnya Anda berkata, "Mari jelajahi jalur baru dari sini." Semua perubahan Anda berada di jalur ini sampai Anda memutuskan untuk menggabungkannya kembali ke garis utama—atau tidak. Fleksibilitas ini memudahkan untuk mencoba ide, membangun fitur secara terisolasi, dan berkolaborasi tanpa mengganggu kode yang stabil.
Git melacak posisi Anda saat ini dalam proyek menggunakan referensi khusus bernama HEAD. Ketika Anda berpindah branch, HEAD menunjuk ke ujung branch baru. Detail di balik layar ini memungkinkan Git berpindah konteks dengan sangat cepat, dan inilah yang membuat perintah seperti git checkout dan git switch terasa begitu mulus setelah Anda memahami apa yang terjadi di balik kap mesin.
Dengan memahami cara kerja branch Git, Anda akan membuka kemampuan untuk menata alur kerja pengembangan dengan jelas dan percaya diri. Jika Anda mengikuti dan ingin menguji konsep ini, kursus Intermediate Git dari DataCamp membahas branching dengan banyak latihan terpandu.
Menampilkan Daftar dan Melihat Branch Git
Jadi, Anda telah membuat branch dan mulai menggunakannya, tetapi bagaimana cara melacak semuanya? Untungnya, Git menyediakan alat sederhana namun kuat untuk menampilkan, mengurutkan, dan memfilter branch agar Anda tidak kehilangan jejak alur kerja.
Memeriksa branch saat ini
Untuk mulai, mari periksa branch apa saja yang ada di repositori lokal Anda dan identifikasi branch mana yang sedang aktif.
git branch
Perintah ini menampilkan semua branch lokal Anda. Anda akan melihat tanda bintang (*) di sebelah branch yang aktif saat ini. Untuk tampilan yang lebih terarah, coba:
git branch --show-current
Perintah ini menampilkan nama branch yang sedang Anda kerjakan—ringkas dan jelas.
Ingin melihat branch remote juga? Gunakan:
git branch -r
Dan bila Anda ingin melihat branch lokal dan remote sekaligus:
git branch -a
Ini memberi gambaran lengkap struktur branching proyek Anda, yang sangat membantu saat berkolaborasi di platform seperti GitHub.
Mengurutkan dan memfilter branch
Seiring proyek berkembang, daftar branch Anda juga akan bertambah. Mengurutkan dan memfilter membantu Anda mengelola daftar ini secara efektif. Untuk mengurutkan branch berdasarkan tanggal commit terbaru, gunakan:
git branch --sort=-committerdate
Anda juga dapat mengurutkan berdasarkan kriteria lain, seperti nama penulis, tanggal pembuatan, atau konfigurasi upstream. Berikut perintah praktis untuk memfilter branch yang berisi commit tertentu:
git branch --contains <commit>
Ini menampilkan branch mana yang sudah memasukkan commit tertentu, membantu memeriksa apakah perbaikan bug atau fitur telah digabungkan. Sebaliknya, perintah di bawah ini menunjukkan branch yang belum mengambil commit tersebut:
git branch --no-contains <commit>
Mengelola branch secara efektif mencakup membuatnya sekaligus memastikan visibilitas dan kontrol. Perintah-perintah ini membantu menjaga pengembangan tetap bersih, teratur, dan efisien.
Ingin menguasai kaitannya dengan kolaborasi? Kursus Foundations of Git memberikan dasar yang sangat baik dan membahas alur kerja dunia nyata yang akan sering Anda gunakan.
Membuat Branch Git Baru
Sekarang setelah Anda memahami cara menampilkan daftar dan berpindah antar branch, mari kita bahas cara membuatnya. Branching adalah bagian inti dari alur kerja Git, dan untungnya, membuat branch baru itu mudah, baik untuk menyiapkan feature branch, hotfix, atau bereksperimen dengan sesuatu yang benar-benar baru.
Membuat branch tanpa berpindah
Terkadang, Anda ingin membuat branch tanpa langsung masuk ke dalamnya. Ini berguna saat Anda menyiapkan beberapa branch sekaligus atau menyiapkan alur kerja untuk orang lain.
git branch new-feature
Perintah ini membuat branch bernama new-feature, tetapi Anda tetap berada di branch saat ini. Anda bisa beralih ke sana nanti saat siap mengerjakannya.
Membuat dan berpindah ke branch sekaligus
Jika Anda langsung ingin mulai mengembangkan, Anda bisa membuat dan berpindah ke branch baru dalam satu langkah. Pada versi Git yang lebih lama, Anda akan menggunakan:
git checkout -b new-feature
Namun, di Git modern, pendekatan yang lebih jelas dan intuitif adalah:
git switch -c new-feature
Ini tidak hanya membuat branch, tetapi juga langsung melakukan checkout, sehingga Anda siap bekerja.
Menetapkan upstream branch
Saat bekerja dengan repositori remote, Anda sering ingin branch lokal melacak branch remote. Ini membuat proses push dan pull lebih sederhana. Untuk membuat branch yang sejak awal melacak branch remote, gunakan:
git branch --track new-feature origin/new-feature
Jika Anda sudah membuat branch dan ingin menetapkan atau mengubah upstream, gunakan perintah ini:
git branch --set-upstream-to=origin/new-feature
Konfigurasi ini memastikan branch lokal Anda tahu branch remote mana yang harus di-pull atau di-push, sehingga alur kerja tetap mulus dan terhubung.
Beralih Antar Branch Git
Setelah Anda membuat beberapa branch, Anda sering perlu berpindah di antaranya, entah kembali ke main untuk menggabungkan perbaikan atau beralih ke feature branch untuk melanjutkan coding. Git membuat proses ini mulus, dan seperti banyak hal terkait Git, ada lebih dari satu cara untuk melakukannya.
Menggunakan git checkout
Untuk waktu yang lama, git checkout adalah perintah andalan untuk berpindah branch:
git checkout feature-login
Perintah ini memindahkan direktori kerja Anda ke branch feature-login, memperbarui semua file agar sesuai dengan snapshot branch tersebut. Ini andal dan masih banyak digunakan. Namun begini: git checkout melakukan banyak hal. Ia digunakan untuk berpindah branch, memulihkan file, bahkan checkout commit. Itu bisa membingungkan, terutama jika Anda baru mulai.
Menggunakan git switch
Agar lebih intuitif, Git memperkenalkan the git switch pada versi 2.23:
git switch feature-login
Perintah ini melakukan persis seperti yang Anda harapkan: berpindah branch. Ia tidak menyentuh working tree Anda atau mereset file kecuali Anda memintanya. Lebih sederhana, lebih aman, dan lebih mudah diajarkan serta diingat.
Jadi, kapan sebaiknya menggunakan yang mana?
- Gunakan
git switchuntuk berpindah antar branch—jelas dan dibuat khusus untuk itu. - Gunakan
git checkoutjika Anda perlu memulihkan file atau checkout commit tertentu.
Menggabungkan Branch Git
Anda telah mengerjakan fitur di branch terpisah. Sekarang saatnya menggabungkan perubahan ke branch utama. Dalam Git, proses ini disebut merging. Bergantung pada riwayat branch Anda, ada beberapa cara untuk melakukannya.
Fast-forward merge
Misalkan feature branch Anda dimulai dari the main, dan saat Anda mengerjakannya, tidak ada orang lain yang menyentuh main. Dalam kasus ini, Git tidak perlu banyak berpikir. Ia cukup memajukan penunjuk main ke commit terbaru di feature-branch.
git checkout main
git merge feature-branch
Tidak ada commit baru yang dibuat—Git melakukan fast-forward pada main. Bersih, sederhana, dan sempurna untuk proyek solo atau branch berumur pendek.
Three-way merge
Keadaannya menjadi lebih menarik ketika kedua branch berkembang secara independen. Rekan tim Anda mungkin menambahkan perubahan pada main saat Anda mengode di feature branch. Kini Git harus melihat tiga snapshot: leluhur bersama, branch Anda, dan branch target.
git checkout main
git merge feature-branch
Dalam kasus ini, Git membuat merge commit baru untuk menggabungkan kedua branch. Jika ada konflik—misalnya Anda dan rekan mengubah baris yang sama pada file yang sama—Git akan meminta Anda menyelesaikannya secara manual. Anda akan mengedit file, menandainya sebagai terselesaikan, lalu melakukan commit merge.
git add .
git commit
Jika ini terdengar agak menakutkan, Git Merge Tutorial: A Comprehensive Guide with Examples kami adalah panduan yang sangat baik dan mencakup semua hal penting, termasuk menangani konflik dengan baik.
Rebase alih-alih merge
Tidak suka merge commit yang membuat riwayat berantakan? Anda tidak sendiri. Di sinilah Git rebase berguna. Alih-alih membuat merge commit baru, rebase memutar ulang perubahan Anda di atas branch lain, menghasilkan riwayat yang lebih bersih dan linear.
git checkout feature-branch
git rebase main
Kemudian, saat Anda melakukan merge, Git melihat garis lurus—tidak perlu merge commit. Namun, gunakan dengan hati-hati, terutama saat bekerja pada branch bersama. Mengubah riwayat bisa berbahaya jika orang lain juga bekerja pada kode yang sama.
Untuk mempelajari kapan sebaiknya menggunakan merge vs. rebase (dan cara rebase dengan aman), kursus Intermediate Git menawarkan panduan praktis dan langsung.
Menghapus Branch Git
Setelah merge berhasil, ada baiknya merapikan branch yang tidak lagi Anda perlukan—baik lokal maupun remote. Ini menjaga ruang kerja tetap rapi dan riwayat Git lebih mudah dinavigasi. Mari kita bahas cara melakukannya tanpa khawatir menghapus sesuatu yang penting.
Menghapus branch lokal
Ketika sebuah branch telah digabungkan dan tugasnya selesai, Anda bisa menghapusnya dengan aman dari repositori lokal:
git branch -d feature-branch
Flag -d berarti “delete”. Git akan memeriksa untuk memastikan branch sudah digabungkan guna menghindari potensi kehilangan data.
Namun bagaimana jika Anda ingin menghapus branch meskipun belum digabungkan? Di situlah huruf kapital -D digunakan:
git branch -D feature-branch
Ini memaksa penghapusan, meski Git memperingatkan bahwa branch belum digabungkan. Sebelum menekan enter, pastikan Anda memang tidak memerlukan perubahan tersebut.
Ingin mempelajari lebih dalam pengelolaan ruang kerja lokal dan branch? Lihat tutorial Git Pull Force: How to Overwrite a Local Branch With Remote. Ini pendamping yang berguna agar Anda tidak sekadar menghapus, tetapi juga mengelola branch dengan aman.
Menghapus branch remote
Pembersihan lokal hanyalah separuh pekerjaan. Jika branch juga ada di remote (seperti GitHub), Anda sebaiknya menghapusnya juga di sana, terutama jika fitur atau perbaikan bug sudah selesai.
git push origin --delete feature-branch
Perintah ini memberi tahu Git untuk menghapus branch dari remote origin. Caranya bersih dan langsung, membantu mencegah remote Anda dipenuhi branch yang tidak terpakai.
Setelah Anda menghapus branch remote, ada baiknya juga merapikan referensi pelacakan lokal.
git fetch -p
Huruf -p berarti "prune". Ini menghapus branch pelacakan remote yang sudah tidak ada lagi di server.
Untuk kebiasaan higienitas Git yang lebih bermanfaat, Git Push and Pull Tutorial dan Complete Git Cheat Sheet adalah referensi cepat yang tepat.
Melakukan Push dan Pull Branch Git
Setelah Anda membuat dan menata branch secara lokal, langkah berikutnya adalah menyinkronkannya dengan repositori remote. Ini penting untuk kolaborasi dan cadangan. Mari kita bahas cara melakukan push, pull, dan track branch secara efektif.
Melakukan push branch baru ke remote
Anda telah membuat fitur baru secara lokal dan mengujinya, dan sekarang Anda ingin membagikannya dengan tim atau mencadangkannya. Untuk melakukan push branch baru ke repositori remote (biasanya bernama origin), gunakan:
git push -u origin new-feature
Flag -u (singkatan dari --set-upstream) memberi tahu Git untuk mengingat branch remote untuk pull dan push berikutnya. Dengan begitu, lain kali Anda cukup menjalankan git pull atau git push tanpa menyebutkan branch.
Jika Anda penasaran apa lagi yang terjadi di balik layar saat melakukan push atau pull, Git Push and Pull Tutorial kami menjelaskannya dengan contoh yang bisa Anda ikuti.
Melakukan pull perubahan dari branch remote
Misalkan orang lain mendorong pembaruan ke branch yang sama dengan yang Anda kerjakan. Anda perlu menarik perubahan tersebut agar tetap sinkron:
Git pull origin new-feature
Perintah ini mengambil commit terbaru dari remote dan menggabungkannya ke branch lokal Anda. Jika Anda ingin menghindari merge commit, pertimbangkan untuk menggunakan berikut ini:
git pull --rebase origin new-feature
Seperti dijelaskan pada bagian merge, --rebase membantu menjaga riwayat commit tetap bersih.
Melacak branch remote
Saat Anda ingin mulai bekerja dengan branch yang sudah ada di remote, cara termudah untuk menyiapkannya adalah:
git checkout --track origin/feature-xyz
Perintah ini melakukan checkout branch remote dan secara otomatis menyiapkan pelacakan, sehingga pull dan push berikutnya menjadi mudah.
Masalah Umum dan Pemecahan Masalah
Bahkan dengan alur kerja terbaik, tidak selalu semuanya berjalan mulus. Baik itu konflik merge, branch yang terhapus tanpa sengaja, atau perubahan yang belum di-commit menghalangi Anda, Git memiliki alat untuk membantu pemulihan. Mari lihat beberapa masalah branching paling umum dan cara memperbaikinya.
Menangani konflik merge
Anda baru saja mencoba menggabungkan branch, dan Git menampilkan konflik merge. Ini terjadi ketika dua branch mengubah bagian yang sama dari sebuah file dengan cara berbeda, dan Git tidak bisa memutuskan perubahan mana yang dipertahankan.
Berikut cara menanganinya:
git status
Perintah ini memberi tahu file mana yang konflik. Lalu, Anda bisa menggunakan:
git diff
Untuk melihat penyebab masalah. Dari sana, buka file yang konflik secara manual, selesaikan perbedaannya, lalu
git add <resolved-file>
git commit
Jika Anda ingin mempelajari lebih lanjut tentang alur kerja merge dan penyelesaian konflik, lihat Git Merge Tutorial, yang menyediakan panduan lengkap.
Memulihkan branch yang terhapus
Tanpa sengaja menghapus branch dan mulai panik? Jangan khawatir—itu belum hilang selamanya jika Anda bergerak cepat.
Anda bisa memulihkannya menggunakan git reflog, yang mencatat posisi HEAD terbaru:
git reflog
Temukan hash commit sebelum Anda menghapus branch, lalu buat ulang dengan:
git checkout -b your-branch-name <commit-hash>
Dan seketika, branch Anda kembali. Ingin lebih paham bagaimana Git melacak referensi ini? Git Reflog Guide kami menjelaskannya dengan contoh nyata.
Menyimpan sementara perubahan sebelum berpindah
Terkadang Anda ingin berpindah branch, tetapi ada perubahan yang belum di-commit. Git tidak mengizinkan Anda beralih jika berisiko menyebabkan pekerjaan hilang. Di sinilah git stash berguna.
git stash
Git akan menyimpan sementara perubahan Anda. Setelah berpindah branch, Anda bisa mengembalikannya dengan:
git stash pop
Ini sangat membantu saat berpindah antar fitur atau hotfix.
Jika Anda mengelola banyak perubahan atau merapikan direktori kerja, Anda juga mungkin tertarik dengan Git Clean: Remove Untracked Files and Keep Repos Tidy.
Strategi Branching Lanjutan
Sampai di sini, Anda telah melihat cara membuat, berpindah, dan mengelola branch Git dengan mudah. Namun bagaimana tim menggunakan branch ini dalam proyek nyata? Jawabannya ada pada pemilihan strategi branching yang tepat—struktur tentang bagaimana dan kapan menggunakan branch dalam alur kerja pengembangan. Mari jelajahi beberapa pendekatan paling populer.
Feature branch workflow
Feature branch workflow adalah salah satu strategi paling umum, terutama pada proyek kolaboratif. Cara kerjanya:
Setiap fitur baru memiliki branch sendiri yang dibuat dari main (atau develop). Ini memungkinkan pengembang bekerja secara independen tanpa memengaruhi kode siap produksi.
git switch -c feature/login-page
Setelah fitur selesai dan diuji, ia digabungkan kembali ke branch utama (atau branch staging) melalui pull request.
Model ini membantu mengisolasi pekerjaan, membuat code review lebih mudah dikelola, dan menghindari menumpuknya fitur setengah jadi di main. Agar kolaborasi remote tetap lancar, jangan lupa push branch Anda:
git push -u origin feature/login-page
Butuh penyegaran tentang push dan pull branch? Git Push and Pull Tutorial membahas seluruh prosesnya.
Alur kerja GitFlow
GitFlow cocok jika Anda mengerjakan proyek dengan rilis teratur. Alur ini memperkenalkan peran terstruktur untuk berbagai jenis branch:
-
main: selalu berisi kode siap produksi. -
develop: branch integrasi untuk fitur. -
feature/*: branch berumur pendek untuk fitur baru. -
release/*: branch pra-produksi untuk pengujian. -
hotfix/*: perbaikan cepat berbasismain.
Berikut contoh cepat memulai feature branch menggunakan alat GitFlow:
git flow feature start payment integration
Strategi ini menambah sedikit kompleksitas, tetapi unggul pada tim besar yang mengutamakan struktur jelas dan stabilitas. Jika Anda menjelajahi alur kerja di luar GitHub, lihat What GitLab Is: Features, Benefits, and How to Get Started untuk sudut pandang lain tentang praktik Git yang terstruktur.
Trunk-based development
Lebih menyukai branching minimal dan pengiriman cepat? Trunk-based development mungkin gaya Anda. Dalam strategi ini, semua pengembang melakukan commit ke satu branch, biasanya main, dengan commit kecil dan sering. Alih-alih feature branch berumur panjang, pendekatan ini mendorong branch berumur pendek atau commit langsung ke branch main.
Model ini cepat dan lugas, tetapi membutuhkan kedisiplinan, otomasi pengujian yang kuat, dan komunikasi yang baik. Model ini lazim di startup dan tim yang menerapkan DevOps atau CI/CD. Memilih strategi branching bergantung pada ukuran tim, frekuensi rilis, dan tentu saja, tingkat kolaborasi.
Kesimpulan
Branch adalah inti dari sistem kontrol versi Git. Ia memungkinkan pengembang mengerjakan fitur baru, perbaikan bug, dan eksperimen secara terpisah tanpa mengganggu basis kode utama. Fleksibilitas ini menghasilkan alur kerja yang lebih bersih, lebih teratur, dan kolaborasi tim yang lebih baik.
Dengan commit yang sering, merge yang bertanggung jawab, dan struktur branch yang rapi, Anda mengurangi risiko konflik dan membuat basis kode lebih mudah dinavigasi serta dipelihara. Tidak diragukan lagi, menguasai branch Git membantu Anda menghasilkan perangkat lunak yang lebih baik dari waktu ke waktu.
Penulis teknis yang mengkhususkan diri pada AI, ML, dan ilmu data, membuat gagasan kompleks menjadi jelas dan mudah diakses.

