Lewati ke konten utama

Git Hapus Branch: Cara Menghapus Branch Lokal dan Remote

Panduan ini menjelaskan cara menghapus branch di Git—secara lokal dan remote—dengan mengikuti praktik terbaik untuk menghindari kehilangan data secara tidak sengaja.
Diperbarui 4 Jun 2026  · 15 mnt baca

Jika Anda pengguna Git aktif seperti saya, kemungkinan Anda sudah menumpuk banyak branch lama. Ada yang sudah di-merge, ada yang ditinggalkan, dan ada juga yang bahkan Anda lupa pernah membuatnya. Menyimpan branch-branch itu mungkin terlihat bukan masalah besar, tetapi seiring waktu, mereka dapat mengacaukan repositori Anda dan mempersulit pelacakan pekerjaan yang masih aktif.

Dalam panduan ini, saya akan menjelaskan cara menghapus branch Git secara lokal dan remote, mencakup cara paling aman untuk melakukannya dan potensi jebakan yang perlu diwaspadai.

Apa Dampak Menghapus Branch Git?

Branch Git secara desain bersifat sementara. Branch memberi Anda ruang untuk mengerjakan fitur baru, perbaikan bug, atau eksperimen tanpa mengganggu codebase utama. Namun setelah sebuah branch selesai menjalankan fungsinya, menyimpannya hanya menambah kekacauan yang tidak perlu. Menghapus branch menurut saya adalah bagian dari perapihan yang baik agar alur kerja Git tetap bersih dan mudah dikelola.

Perlu saya tekankan bahwa “menghapus” branch bukan berarti “menghapus” pekerjaan Anda. Saat Anda menghapus branch di Git, Anda tidak menghapus commit-nya, hanya referensinya saja. Begini cara kerjanya:

  • Menghapus branch lokal akan menghapus branch dari repositori pribadi Anda. Jika tidak ada branch lain atau tag yang mereferensikan commit-commit tersebut, commit itu pada akhirnya bisa dibersihkan oleh garbage collection Git.
  • Menghapus branch remote akan menghapus branch dari repo bersama (misalnya, GitHub, GitLab, Bitbucket), sehingga tidak dapat diakses oleh kolaborator. Namun, salinan lokal branch tersebut pada mesin lain akan tetap ada hingga dihapus atau diperbarui secara manual.

Mengapa menghapus branch?

Menghapus branch adalah perapihan yang baik, sesederhana itu. Sama seperti praktik yang baik untuk menghapus foto duplikat, unduhan lama, dan folder usang, ada beberapa alasan bagus untuk menghapus branch setelah Anda selesai menggunakannya:

  • Menjaga repositori tetap rapi. Terlalu banyak branch, terutama yang sudah usang, membuat pelacakan pekerjaan aktif menjadi lebih sulit.
  • Mencegah kebingungan. Jika sebuah branch sudah tidak relevan, menyimpannya dapat menimbulkan ketidakpastian apakah branch itu masih digunakan.
  • Meningkatkan kolaborasi. Dalam lingkungan tim, menghapus branch fitur yang sudah selesai menandakan pekerjaan telah rampung dan mencegah pekerjaan yang tidak perlu pada kode yang sudah usang.
  • Mengurangi penumpukan di repositori remote. Repositori remote dapat dipenuhi oleh branch basi, sehingga menyulitkan Anda (atau peninjau) menavigasi riwayat proyek.

Jika Anda baru menggunakan Git atau perlu menyiapkannya sebelum mengelola branches, lihat tutorial instalasi Git untuk langkah demi langkah.

Menghapus Branch Git Lokal

Menghapus branch lokal tidak sulit; untungnya, ini salah satu tugas Git yang lebih lugas. Mari kita bahas cara paling aman untuk melakukannya dan hal-hal yang perlu diwaspadai.

Perintah dasar untuk menghapus branch lokal

Cara paling aman untuk menghapus branch lokal adalah dengan flag -d:

git branch -d <branch_name>

Perlu diingat bahwa perintah ini hanya berfungsi jika branch telah sepenuhnya di-merge ke branch saat ini (biasanya main atau master). Jika ada perubahan yang belum di-merge, Git akan menghentikan Anda untuk mencegah kehilangan data secara tidak sengaja.

Memaksa menghapus branch lokal

Jika Anda mencoba menghapus branch yang masih memiliki perubahan belum di-merge, Git tidak akan mengizinkan kecuali Anda memaksanya:

git branch -D <branch_name>

Flag -D (perhatikan huruf kapital) melewati pemeriksaan keamanan dan langsung menghapus branch, baik sudah di-merge maupun belum. Saya sangat menyarankan untuk berhati-hati dengan ini. Pekerjaan yang belum di-merge akan hilang kecuali Anda memiliki cadangan atau branch lain yang menunjuk ke commit yang sama.

Memeriksa perubahan belum di-merge sebelum menghapus

Sebelum sampai pada langkah menghapus branch, sebaiknya periksa apakah branch tersebut memiliki perubahan yang belum di-merge. Anda dapat melakukannya dengan:

git branch --no-merged

Perintah di atas menampilkan semua branch yang belum di-merge ke branch saat ini. Jika branch yang hendak Anda hapus muncul dalam daftar ini, pastikan kembali bahwa Anda tidak memerlukan perubahannya sebelum melanjutkan.

Ingin referensi cepat untuk perintah Git, termasuk menghapus branch? Unduh lembar contekan Git yang praktis.

Menghapus Branch Git Remote

Menghapus branch remote sedikit berbeda dari menghapus branch lokal. Karena branch remote berada di repositori bersama, menghapusnya membantu menjaga kerapian dan mencegah branch usang mengganggu alur kerja tim.

Perintah dasar untuk menghapus branch remote

Untuk menghapus branch dari repositori remote seperti GitHub, GitLab, atau Bitbucket, gunakan:

git push origin --delete <branch_name>

Perintah ini menghapus referensi branch dari repositori remote, sehingga tidak dapat diakses orang lain. Namun, salinan lokal branch pada mesin lain tidak akan terpengaruh — salinan tersebut perlu dibersihkan secara terpisah.

Memverifikasi penghapusan branch remote

Setelah menghapus branch remote, Anda perlu memastikan bahwa branch tersebut benar-benar hilang. Pertama, ambil pembaruan terbaru dari repositori remote:

git fetch --prune

Ini akan menghapus referensi pelacakan-remote yang sudah usang. Untuk memastikan kembali bahwa branch tidak lagi terdaftar, jalankan perintah berikut:

git branch -r

Perintah di atas menampilkan semua branch remote yang tersisa. Jika branch yang dihapus masih muncul, coba jalankan lagi git fetch --prune atau pastikan perintah penghapusan dijalankan pada remote yang benar.

Praktik Terbaik untuk Menghapus Branch Git

Menghapus branch adalah bagian rutin dari bekerja dengan Git, tetapi melakukannya dengan benar dapat menyelamatkan Anda dari kerumitan yang tidak perlu. Berikut beberapa praktik terbaik untuk menjaga repositori tetap rapi dan menghindari potensi kesalahan.

Hindari menghapus branch yang belum di-merge terlalu dini

Sebelum menghapus branch, pastikan branch tersebut tidak berisi pekerjaan belum di-merge yang masih dibutuhkan. Jika Anda ragu, periksa statusnya dengan:

git branch --no-merged

Jika branch memiliki perubahan berharga yang belum di-merge, pertimbangkan untuk melakukan merge atau mengarsipkannya terlebih dahulu alih-alih langsung menghapusnya.

Hapus setelah merge

Setelah sebuah fitur atau perbaikan di-merge ke branch utama (main atau master), tidak ada alasan untuk menyimpan branch lama. Menghapus branch yang sudah di-merge membantu mencegah kekacauan dan memudahkan melihat branch mana yang masih aktif.

Komunikasikan dengan tim Anda

Sebagai bentuk profesionalisme, saat bekerja pada proyek kolaboratif, hindari menghapus branch tanpa memberi tahu tim Anda. Ini dapat menimbulkan kebingungan—atau lebih buruk, mengganggu pekerjaan orang lain. Sebelum menghapus branch remote, konfirmasi dengan tim untuk memastikan tidak ada yang masih menggunakannya. Saya lebih suka pesan singkat di Slack atau catatan untuk mencegah frustrasi.

Sebelum menghapus branch, Anda mungkin ingin merapikan riwayat commit dengan melakukan squash commit. Pelajari caranya di tutorial Git Squash Commits kami.

Masalah Umum Saat Menghapus Branch Git

Menghapus branch di Git biasanya berjalan lancar, tetapi ada beberapa jebakan umum yang dapat menjegal Anda. Berikut hal-hal yang perlu diwaspadai dan cara menanganinya jika terjadi.

Menghapus branch yang belum sepenuhnya di-merge

Sekali lagi, jika Anda mencoba menghapus branch yang masih memiliki perubahan belum di-merge menggunakan git branch -d, Git akan menghentikan Anda untuk mencegah potensi kehilangan data. Ini adalah pengaman. Pekerjaan yang belum di-merge akan hilang jika Anda memaksa menghapusnya dengan -D.

Jika Anda sudah terlanjur menghapus branch dan menyadari Anda membutuhkannya kembali, Anda mungkin dapat memulihkannya menggunakan reflog Git:

git reflog
git checkout -b <branch_name> <commit_hash>

Ini memungkinkan Anda memulihkan branch dari commit terakhir yang diketahui jika belum sepenuhnya dibersihkan oleh garbage collection.

Menghapus branch yang sedang aktif

Git tidak akan mengizinkan Anda menghapus branch yang saat ini Anda gunakan, yang masuk akal—jika tidak, Anda akan dibiarkan tanpa branch aktif. Jika Anda melihat error saat mencoba menghapus branch, beralihlah ke branch lain terlebih dahulu:

git checkout main

Atau, jika menggunakan Git 2.23+:

git switch main

Setelah Anda berada di branch lain, Anda dapat dengan aman menghapus branch yang ingin dihapus.

Perlu beralih antar-branch sebelum menghapus salah satunya? Panduan kami tentang checkout branch remote di Git akan memandu Anda melalui prosesnya.

Tidak sengaja menghapus branch remote

Jika branch remote terhapus karena kesalahan, Anda dapat memulihkannya (dengan asumsi Anda masih memiliki salinan lokal) dengan mendorongnya kembali ke remote:

git push origin <deleted_branch_name>

Ini akan membuat ulang branch di repositori remote, memulihkan akses kolaborator. Jika tidak ada salinan lokal, Anda mungkin perlu memeriksa riwayat commit secara manual dan membuat ulang branch tersebut.

Mengapa Saya Tidak Bisa Menghapus Branch Git?

Jika Anda mengalami kesulitan menghapus branch di Git, tinjau kembali masalah umum; periksa apakah branch sudah di-merge, apakah Anda sedang berada di branch itu, atau apakah itu branch remote. Dari situ, masalahnya mungkin pada pengaturan atau izin Anda.  

  1. Hal pertama yang perlu diperiksa adalah apakah Anda saat ini berada di branch tersebut. Git tidak akan mengizinkan penghapusan branch yang sedang Anda gunakan, jadi Anda perlu beralih ke branch lain terlebih dahulu. 
  2. Jika itu bukan masalahnya, branch mungkin masih memiliki perubahan yang belum di-merge. Git melindungi branch dengan pekerjaan yang belum di-merge, jadi kecuali Anda benar-benar yakin tidak memerlukan perubahan tersebut, Anda harus melakukan merge atau memaksa menghapus branch dengan git branch -D branch-name.
  3. Jika Anda mencoba menghapus branch remote, perintah git branch -d saja tidak akan berhasil. Sebagai gantinya, jalankan git push origin --delete branch-name, dan untuk membersihkan referensi lama, Anda dapat menggunakan git fetch --prune
  4. Beberapa repositori, terutama yang dihosting di platform seperti GitHub atau GitLab, memiliki branch terlindungi yang tidak dapat dihapus tanpa mengubah pengaturan. Jika Anda bekerja di repositori bersama, Anda juga mungkin memerlukan izin yang tepat untuk menghapus branch.

Masih bingung? Menjalankan git branch -v dapat memberi Anda detail lebih lanjut tentang status branch dan membantu mencari tahu apa yang terjadi sebelum mencoba lagi.

Mengotomatiskan Pembersihan Branch dengan Git

Saya menyukai otomatisasi yang baik. Walau menghapus branch secara manual tidak masalah—dan Anda sebaiknya memahami caranya—ada cara lain. Jika Anda berurusan dengan banyak branch (seperti dalam pengaturan tim), otomatisasi dapat menghemat waktu dan membuat semuanya lebih rapi. Git menawarkan beberapa cara untuk merapikan pembersihan branch, mengurangi kekacauan tanpa usaha ekstra.

Otomatiskan pembersihan branch remote

Saat branch remote dihapus, Git lokal Anda masih menyimpan referensinya hingga Anda memperbaruinya secara manual. Alih-alih membersihkannya satu per satu, Anda dapat menggunakan:

git fetch --prune

Perintah di atas secara otomatis menghapus referensi lokal ke branch yang sudah tidak ada di repositori remote, menjaga semuanya tetap sinkron. Menjalankannya secara berkala mencegah penumpukan branch usang di repo lokal Anda.

Gunakan Git hook untuk pembersihan

Untuk tim atau proyek yang lebih besar, Git hook dapat membantu mengotomatiskan pembersihan branch. Hook adalah skrip kustom yang berjalan pada titik tertentu dalam alur kerja Git, seperti setelah melakukan merge branch. Anda dapat mengonfigurasi post-merge hook untuk secara otomatis menghapus branch yang sudah di-merge setelah jangka waktu tertentu, memastikan branch lama tidak bertahan tanpa perlu.

Kesimpulan

Branch dapat menjadi berantakan seiring waktu, tetapi sedikit “pemangkasan” membantu menjaga repositori tetap bersih dan alur kerja Anda efisien. Dengan membiasakan menghapus branch yang sudah di-merge, memeriksa ulang branch yang belum di-merge, dan menjaga komunikasi tetap terbuka dalam proyek tim, Anda dapat menghindari masalah-masalah ini. Dan jika ingin melangkah lebih jauh, alat otomatisasi seperti git fetch --prune dan Git hook dapat membantu menjaga repo tetap bersih tanpa usaha ekstra.

Menghapus branch hanyalah satu langkah menuju penguasaan Git. Untuk memperdalam pemahaman Anda tentang version control, lihat kursus Intermediate Git. Jika Anda bekerja dengan repositori GitHub, pemahaman yang kuat tentang konsep inti GitHub sangat penting. Pelajari lebih lanjut di kursus Introduction to GitHub Concepts!

FAQ

Apakah menghapus branch di Git dapat memengaruhi kode produksi saya?

Tidak, menghapus branch tidak memengaruhi kode produksi selama branch tersebut sudah di-merge ke branch utama Anda (main atau master). Namun, jika Anda menghapus branch dengan perubahan yang belum di-merge, pekerjaan apa pun yang belum dimasukkan ke branch lain akan hilang. Selalu periksa status merge sebelum menghapus.

Bagaimana cara mencegah tim saya tidak sengaja menghapus branch penting?

Jika Anda bekerja di repositori bersama (GitHub, GitLab, dll.), Anda dapat melindungi branch kritis seperti main dan develop dengan menetapkan aturan perlindungan branch. Ini membantu mencegah penghapusan tidak sengaja dan force push yang tidak sah. Untuk repositori lokal, pertimbangkan menggunakan konvensi penamaan (misalnya, memberi awalan wip- untuk pekerjaan yang sedang berlangsung) untuk menunjukkan branch mana yang belum boleh dihapus.

Apakah ada cara untuk melacak siapa yang menghapus branch Git remote?

Ya, di repositori yang dihosting di GitHub, GitLab, atau Bitbucket, penghapusan branch biasanya dicatat di feed aktivitas. Anda dapat memeriksa audit log repositori atau riwayat commit untuk melihat siapa yang menghapus branch dan kapan. Untuk repositori Git yang di-host sendiri, Anda mungkin perlu menyiapkan hook sisi server untuk melacak penghapusan secara manual.

Bagaimana cara memulihkan branch Git yang terhapus jika saya sudah menutup terminal?

Jika Anda menghapus sebuah branch dan belum menutup terminal, Anda dapat membatalkannya dengan:

git checkout -b <branch_name> <commit_hash>

Namun jika Anda sudah menutup terminal, opsi terbaik adalah menggunakan git reflog.

Ini akan menampilkan riwayat tindakan terbaru, termasuk penghapusan branch. Temukan hash commit terakhir dari branch yang dihapus dan gunakan untuk membuat ulang branch tersebut. Namun, jika branch dihapus di remote dan lokal, dan tidak ada orang lain yang memiliki salinannya, pemulihan mungkin tidak memungkinkan.

Apa perbedaan antara `git branch -d` dan `git branch -D` dalam penggunaan nyata?

  • git branch -d <branch> — Penghapusan aman. Perintah ini akan mencegah penghapusan jika branch memiliki perubahan yang belum di-merge, berfungsi sebagai jaring pengaman.
  • git branch -D <branch> — Penghapusan paksa. Perintah ini tidak peduli apakah branch memiliki perubahan yang belum di-merge — branch akan dihapus segera.

Dalam skenario dunia nyata, Anda akan menggunakan -d sebagian besar waktu untuk menghindari kehilangan pekerjaan secara tidak sengaja. Gunakan -D hanya ketika Anda 100% yakin isi branch tersebut sudah tidak dibutuhkan.


Ashlyn Brooks's photo
Author
Ashlyn Brooks

Ashlyn Brooks adalah Penulis Teknis yang mengkhususkan diri pada platform cloud (Azure, AWS), dokumentasi API, dan infrastruktur data. Dengan pengalaman lebih dari tujuh tahun, ia unggul dalam menerjemahkan konsep yang kompleks menjadi konten yang jelas dan mudah dipahami untuk meningkatkan pengalaman pengembang dan adopsi produk.

Topik

Pelajari lebih lanjut tentang Git dengan kursus-kursus ini!

Kursus

Pengantar Git

2 Hr
78.3K
Pelajari dasar-dasar Git untuk version control dalam proyek perangkat lunak dan data Anda.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat Lebih BanyakLihat Lebih Banyak