The jawaban singkat
Jika Anda ingin penjelasan lebih rinci tentang perintah berikut, lihat jawaban panjang di bagian selanjutnya.
Menghapus cabang jarak jauh
git push origin --delete <branch> # Git version 1.7.0 or newer
git push origin -d <branch> # Shorter version (Git 1.7.0 or newer)
git push origin :<branch> # Git versions older than 1.7.0
Menghapus cabang lokal
git branch --delete <branch>
git branch -d <branch> # Shorter version
git branch -D <branch> # Force-delete un-merged branches
Menghapus cabang pelacakan jarak jauh lokal
git branch --delete --remotes <remote>/<branch>
git branch -dr <remote>/<branch> # Shorter
git fetch <remote> --prune # Delete multiple obsolete remote-tracking branches
git fetch <remote> -p # Shorter
The Jawaban panjang : ada tiga cabang yang berbeda untuk menghapus!
Saat Anda berurusan dengan menghapus cabang baik secara lokal maupun jarak jauh, perlu diingat bahwa ada tiga cabang berbeda yang terlibat :
- Cabang setempat
X.
- Cabang asal terpencil
X.
- Cabang pelacakan jarak jauh lokal yang melacak cabang
origin/Xjarak jauh X.

Poster asli yang digunakan:
git branch -rd origin/bugfix
Yang hanya menghapus cabang pelacakan jarak jauh lokalnya origin/bugfix , dan bukan cabang jarak jauh yang sebenarnya bugfixaktif origin.

Untuk menghapus cabang jarak jauh yang sebenarnya , Anda perlu
git push origin --delete bugfix

Detil tambahan
Bagian berikut ini menjelaskan detail tambahan untuk dipertimbangkan saat menghapus cabang pelacak jarak jauh dan Anda.
Mendorong untuk menghapus cabang jarak jauh juga menghapus cabang pelacakan jarak jauh
Perhatikan bahwa menghapus cabang jarak jauh Xdari baris perintah menggunakan git push akan juga menghapus cabang pelacakan jarak jauh lokal origin/X , sehingga tidak perlu memangkas cabang pelacakan jarak jauh yang sudah usang dengan git fetch --pruneatau git fetch -p. Namun, tidak ada salahnya jika Anda tetap melakukannya.
Anda dapat memverifikasi bahwa cabang pelacakan jarak jauh origin/Xjuga dihapus dengan menjalankan yang berikut:
# View just remote-tracking branches
git branch --remotes
git branch -r
# View both strictly local as well as remote-tracking branches
git branch --all
git branch -a
Memangkas asal cabang pelacakan jarak jauh yang usang / X
Jika Anda tidak menghapus cabang jarak jauh Anda Xdari baris perintah (seperti di atas), maka repositori lokal Anda masih akan berisi cabang pelacakan jarak jauh (sekarang sudah usang) origin/X. Ini dapat terjadi jika Anda menghapus cabang jarak jauh secara langsung melalui antarmuka web GitHub, misalnya.
Cara khas untuk menghapus cabang-cabang pelacakan jarak jauh yang sudah usang ini (karena Git versi 1.6.6) adalah dengan menjalankannya git fetchdengan --pruneatau lebih pendek -p. Perhatikan bahwa ini menghapus semua cabang pelacakan jarak jauh lokal yang sudah usang untuk cabang jarak jauh apa pun yang tidak lagi ada di remote :
git fetch origin --prune
git fetch origin -p # Shorter
Berikut adalah kutipan yang relevan dari catatan rilis 1.6.6 (penekanan milik saya):
"git fetch" pelajari --all dan --multipleopsi, untuk menjalankan fetch dari banyak repositori, dan --pruneopsi untuk menghapus cabang pelacakan jarak jauh yang menjadi basi. Ini membuat "git remote update" dan "git remote prune" kurang perlu (tidak ada rencana untuk menghapus "remote update" atau "remote prune", meskipun).
Alternatif untuk pemangkasan otomatis di atas untuk cabang pelacakan jarak jauh yang sudah usang
Atau, alih-alih memangkas cabang-cabang lokal Anda yang sudah ketinggalan zaman git fetch -p, Anda dapat menghindari operasi jaringan tambahan dengan hanya menghapus cabang secara manual dengan bendera --remoteatau -r:
git branch --delete --remotes origin/X
git branch -dr origin/X # Shorter
Lihat juga