Bagaimana cara menghapus cabang Git baik secara lokal maupun jarak jauh?

Saya ingin menghapus cabang secara lokal dan di plug proyek jarak jauh saya di GitHub .

Tidak dapat menghapus cabang yang dihapus

 $ git branch -d remotes/origin/bugfix error: branch 'remotes/origin/bugfix' not found. $ git branch -d origin/bugfix error: branch 'origin/bugfix' not found. $ git branch -rd origin/bugfix Deleted remote branch origin/bugfix (was 2a14ef7). $ git push Everything up-to-date $ git pull From github.com:gituser/gitproject * [new branch] bugfix -> origin/bugfix Already up-to-date. 

Apa yang harus saya lakukan secara berbeda agar berhasil menghapus remotes/origin/bugfix baik secara lokal maupun di GitHub?

14380
05 янв. Matthew Rankin ditetapkan pada 05 Januari 2010-01-05 04:12 '10 pada 4:12 2010-01-05 04:12
@ 40 jawaban
  • 1
  • 2

Ringkasan eksekutif

 $ git push --delete <remote_name> <branch_name> $ git branch -d <branch_name> 

Perhatikan bahwa dalam kebanyakan kasus nama yang dihapus adalah origin .

Hapus cabang lokal

Untuk menghapus cabang lokal, gunakan salah satu dari yang berikut:

 $ git branch -d branch_name $ git branch -D branch_name 

Catatan Parameter -d adalah nama samaran untuk --delete , yang menghapus cabang hanya jika sudah sepenuhnya digabung dengan cabang induk. Anda juga dapat menggunakan -d , yang merupakan alias untuk --delete --force , yang menghapus cabang "terlepas dari status gabungannya". [Sumber: man git-branch ]

Hapus utas yang dihapus [Diperbarui 8 September 2017]

Dimulai dengan Git v1.7.0 , Anda dapat menghapus cabang yang dihapus menggunakan

 $ git push <remote_name> --delete <branch_name> 

apa yang bisa lebih mudah diingat daripada

 $ git push <remote_name> :<branch_name> 

yang ditambahkan di Git v1.5.0 "untuk menghapus cabang atau tag yang dihapus".

Dimulai dengan Git v2.8.0, Anda juga dapat menggunakan git push dengan -d sebagai alias untuk --delete .

Dengan demikian, versi Git yang Anda instal akan menentukan apakah Anda perlu menggunakan sintaksis yang lebih sederhana atau lebih kompleks.

Hapus cabang yang dihapus [Balasan asli tanggal 5 Januari 2010]

Dari Bab 3 Pro Git oleh Scott Chacon:

Menghapus cabang yang dihapus

Misalkan Anda berakhir dengan cabang jarak jauh - katakanlah, Anda dan kolaborator Anda berakhir dengan suatu fungsi dan menggabungkannya dengan cabang utama jarak jauh Anda (atau cabang lain yang berisi garis kode stabil Anda). Anda dapat menghapus cabang jarak jauh menggunakan sintaks git push [remotename] :[branch] . Jika Anda ingin menghapus tambalan server dari server, lakukan hal berikut:

 $ git push origin :serverfix To git@github.com:schacon/simplegit.git - [deleted] serverfix 

Boom Tidak ada lagi cabang di server Anda. Anda mungkin ingin melihat halaman ini karena Anda memerlukan perintah ini dan kemungkinan besar Anda akan melupakan sintaksnya. Untuk mengingat perintah ini, git push [remotename] [localbranch]:[remotebranch] sintaksnya adalah git push [remotename] [localbranch]:[remotebranch] yang kami git push [remotename] [localbranch]:[remotebranch] sedikit lebih awal. Jika Anda adalah bagian [localbranch] dari [localbranch] , maka pada dasarnya katakan: "Jangan ambil apa pun di sisiku dan buatlah [remotebranch] ".

Saya merilis git push origin :bugfix dan itu berfungsi dengan baik. Scott Chacon benar - Saya ingin mendengarkan halaman ini (atau, sebenarnya, telinga anjing, meresponsnya di Stack Overflow).

Maka Anda harus melakukannya di komputer lain.

 git fetch --all --prune 

menyebarkan perubahan.

17997
05 янв. Jawabannya diberikan oleh Matthew Rankin 05 Jan 2010-01-05 04:13 '10 pada 4:13 2010-01-05 04:13

Jawaban Matthew sangat bagus untuk menghapus cabang yang dihapus, dan saya juga berterima kasih atas penjelasannya, tetapi untuk perbedaan sederhana antara dua perintah:

Untuk menghapus cabang lokal Dari perangkat Anda:

git branch -d {the_local_branch} (gunakan -D alih-alih menghapus cabang secara paksa tanpa memeriksa status gabungan)

border=0

Untuk menghapus server cabang jauh dari server:

git push origin --delete {the_remote_branch}

Tautan: https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote

2944
12 июня '12 в 17:51 2012-06-12 17:51 jawabannya diberikan oleh Eric Brotto pada 12 Juni 12 pada 17:51 2012-06-12 17:51

Jawaban singkat

Jika Anda ingin penjelasan lebih rinci tentang perintah berikut, lihat jawaban panjang di bagian selanjutnya.

Menghapus cabang jarak jauh:

 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:

1697
30 мая '14 в 21:32 2014-05-30 21:32 jawabannya diberikan oleh user456814 30 Mei '14 pada 21:32 2014-05-30 21:32

>

untuk menghapus cabang jarak jauh:

 git push origin --delete <your_branch> 

Untuk menghapus cabang lokal, Anda memiliki tiga opsi :

 1: git branch -D <branch_name> 2: git branch --delete --force <branch_name> //same as -D 3: git branch --delete <branch_name> //error on unmerge 

Jelaskan: yah, jelaskan saja apa yang terjadi di sini!

Cukup jalankan git push origin --delete untuk menghapus HANYA cabang yang dihapus , tambahkan nama cabang di akhir, dan keduanya akan menghapus dan mengirimkannya ke cabang jarak jauh ...

Juga, git branch -D , yang hanya menghapus HANYA cabang lokal! ...

-D berarti --delete --force yang menghapus cabang, bahkan jika itu tidak digabung (penghapusan paksa), tetapi Anda juga dapat menggunakan -D yang berarti --delete yang --delete kesalahan terkait dengan keadaan menggabungkan cabang ...

Saya juga membuat gambar di bawah ini untuk menunjukkan >

2019

Anda juga dapat menggunakan yang berikut ini untuk menghapus cabang yang dihapus.

 git push --delete origin serverfix 

Yang melakukan hal yang sama dengan

 git push origin :serverfix 

tetapi mungkin lebih mudah diingat.

719
28 окт. jawaban diberikan pagetribe 28 Okt. 2011-10-28 01:22 '11 pada 1:22 2011-10-28 01:22

Jika Anda ingin menghapus cabang, pertama keluar dari cabang selain cabang yang ingin Anda hapus.

 git checkout other_than_branch_to_be_deleted 

Menghapus cabang lokal:

 git branch -D branch_to_be_deleted 

Menghapus cabang jarak jauh:

 git push origin --delete branch_to_be_deleted 
350
07 окт. jawabannya diberikan oleh Praveen Hiremath 07 Okt 2014-10-07 16:52 '14 pada 16:52 2014-10-07 16:52

Kiat: saat menghapus cabang dengan

 git push origin :<branchname> # deletes remote branch 

Hanya tautan yang dihapus. Meskipun cabang sebenarnya dihapus, tautan ke sana masih ada di repositori lokal anggota tim Anda. Ini berarti bahwa untuk anggota tim lain, cabang jarak jauh masih terlihat ketika mereka melakukan git branch -a .

Untuk mengatasi masalah ini, anggota tim Anda dapat menghapus cabang yang dihapus menggunakan

 git remote prune <repository> 

Ini biasanya git remote prune origin .

338
07 нояб. jawabannya diberikan pfrenssen 07 Nov. 2012-11-07 16:02 '12 pada pukul 4:02 sore 2012-11-07 16:02
 git branch -D <name-of-branch> git branch -D -r origin/<name-of-branch> git push origin :<name-of-branch> 
250
24 окт. balasan diberikan kepada Felipe 24 Oktober. 2013-10-24 20:36 '13 pukul 20:36 2013-10-24 20:36

Sederhana: jalankan saja perintah berikut:

Untuk menghapus cabang Git baik secara lokal maupun jarak jauh, pertama-tama hapus cabang lokal menggunakan perintah:

 git branch -d example 

(di sini example adalah nama cabang)

Dan setelah itu, hapus cabang yang dihapus menggunakan perintah:

 git push origin :example 
215
15 февр. membalas Syeful Islam 15 Feb 2015-02-15 18:20 '15 pada 18:20 2015-02-15 18:20

Pendekatan lain:

 git push --prune origin 

PERHATIAN: Ini akan menghapus semua cabang jarak jauh yang tidak ada secara lokal. Atau lebih komprehensif,

 git push --mirror 

secara efektif membuat repositori jarak jauh tampak seperti salinan lokal repositori (tajuk, remote dan tag lokal tercermin pada remote).

181
18 нояб. Jawaban yang diberikan oleh imanuelcostigan 18 Nov. 2012-11-18 09:11 '12 pada 9:11 2012-11-18 09:11

Saya menggunakan yang berikut ini di pengaturan bash saya:

 alias git-shoot="git push origin --delete" 

Maka Anda dapat menelepon:

 git-shoot branchname 
152
03 апр. Jawabannya diberikan crizCraig 03 Apr. 2013-04-03 01:11 '13 pada 1:11 2013-04-03 01:11

Sejak Januari 2013, GitHub telah memasukkan tombol Hapus cabang di sebelah setiap cabang di halaman "Cabang".

Posting blog yang relevan: membuat dan menghapus cabang

120
29 апр. jawabannya diberikan oleh Nacho Coloma pada 29 April 2013-04-29 13:39 '13 pada 13:39 2013-04-29 13:39

Jika Anda ingin melakukan kedua tindakan ini dengan satu perintah, Anda dapat melakukannya dengan menambahkan ~/.gitconfig bawah ini ke:

 [alias] rmbranch = "!f(){ git branch -d ${1}  git push origin --delete ${1}; };f" 

Atau, Anda dapat menambahkan ini ke konfigurasi global Anda dari baris perintah menggunakan

112
15 янв. Balas diberikan oleh Ryan Kohn pada 15 Jan 2013-01-15 22:05 '13 pukul 10:05 2013-01-15 22:05

Untuk menghapus cabang secara lokal dan jarak jauh

  • Lakukan pembelian di cabang - git checkout master

  • Hapus cabang jarak jauh - git push origin --delete <branch-name>

  • Hapus cabang lokal - cabang git branch --delete <branch-name>

106
04 янв. jawabannya diberikan mfathy00 Jan 04 2016-01-04 00:08 '16 pada 0:08 2016-01-04 00:08

Hapus secara lokal:

Untuk menghapus cabang lokal, Anda dapat menggunakan:

 git branch -d <branch_name> 

Untuk memaksa cabang untuk dihapus, gunakan -D bukan -D .

 git branch -D <branch_name> 

Hapus dari jarak jauh:

Ada dua opsi:

 git push origin :branchname git push origin --delete branchname 

Saya sarankan Anda menggunakan metode ke-2, karena lebih intuitif.

103
23 мая '15 в 11:56 2015-05-23 11:56 jawabannya diberikan oleh Rahul Gupta 23 Mei '15 pukul 11:56 2015-05-23 11:56

Anda juga dapat melakukan ini dengan menggunakan git remote prune origin

 $ git remote prune origin Pruning origin URL: git@example.com/yourrepo.git * [pruned] origin/some-branchs 

Ini menghapus dan menghapus cabang pelacakan jarak jauh dari daftar git branch -r .

97
12 марта '13 в 17:57 2013-03-12 17:57 jawabannya diberikan nickleefly 12 Maret '13 di 17:57 2013-03-12 17:57

Selain jawaban lain, saya sering menggunakan alat git_remote_branch . Ini adalah instalasi opsional, tetapi memberi Anda cara yang nyaman untuk berinteraksi dengan cabang jarak jauh. Dalam hal ini, hapus:

 grb delete branch 

Saya menemukan bahwa saya juga sering menggunakan perintah publish dan track .

95
24 марта '12 в 5:21 2012-03-24 05:21 jawabannya diberikan u2622 24 Maret '12 di 5:21 2012-03-24 05:21

Menghapus cabang

Misalkan pekerjaan kami pada cabang "formulir kontak" sudah selesai, dan kami telah mengintegrasikannya ke dalam "master". Karena kami tidak lagi membutuhkannya, kami dapat menghapusnya (secara lokal):

 $ git branch -d contact-form 

Dan untuk menghapus cabang jarak jauh:

 git push origin --delete contact-form 
86
30 окт. jawabannya diberikan Ulysses Alves 30 Oktober. 2015-10-30 15:39 '15 pada 15:39 2015-10-30 15:39

Perintah one liner menghapus lokal dan jarak jauh:

D=branch-name; git branch -D $D; git push origin :$D

atau tambahkan alias di bawah ini di ~ / .gitconfig; penggunaan: git kill branch-name

 [alias] kill = "!f(){ git branch -D \"$1\"; git push origin --delete \"$1\"; };f" 
85
17 нояб. Jawabannya diberikan oleh Vinnie James 17 November. 2016-11-17 04:03 '16 pada pukul 4:03. 2016-11-17 04:03

Hapus cabang jarak jauh

git push origin :<branchname>

Hapus cabang lokal

git branch -D <branchname>

Hapus >

  • periksa cabang lain
  • hapus cabang lokal
82
31 дек. Jawabannya diberikan jayxhj 31 Des. 2015-12-31 12:22 '16 pada 12:22 2015-12-31 12:22

Katakan saja:

 git branch -d <branch-name> git push origin :<branch-name> 
80
23 апр. jawaban yang diberikan oleh piyushmandovra pada 23 April 2015-04-23 21:06 '15 pada 21:06 2015-04-23 21:06

Sekarang Anda dapat melakukan ini dengan aplikasi GitHub Desktop .

Setelah memulai aplikasi

  • Klik proyek yang berisi cabang
  • Pergi ke cabang yang ingin Anda hapus. 2019
22 окт. Jawabannya diberikan oleh Eric pada 22 Oktober. 2015-10-22 10:38 '15 pada 10:38 2015-10-22 10:38

Untuk menghapus secara lokal - (Normal),

 git branch -d my_branch 

Jika cabang Anda sedang dalam proses pemulihan / penggabungan dan itu tidak dilakukan dengan benar, Anda akan menerima pesan kesalahan Rebase/Merge in progress , jadi dalam hal ini Anda tidak akan dapat menghapus cabang Anda.

Dengan demikian, baik kebutuhan Anda untuk memungkinkan overflow / penggabungan, jika tidak, Anda dapat menghapus penggunaan secara paksa

 git branch -d my_branch 

Untuk menghapus di Remote:

 git push --delete origin my_branch 

dapat menggunakan hal yang sama

 git push origin :my_branch # easy to remember both will do the same. 

Presentasi grafis

2019

 git push origin --delete <branch Name> 

lebih mudah diingat daripada

 git push origin :branchName 
68
02 мая '15 в 13:59 2015-05-02 13:59 jawabannya diberikan Smila 02 Mei '15 pukul 13:59 2015-05-02 13:59

Ini tidak akan berfungsi jika Anda memiliki tag dengan nama yang sama dengan cabang remote control:

 $ git push origin :branch-or-tag-name error: dst refspec branch-or-tag-name matches more than one. error: failed to push some refs to 'git@github.com:SomeName/some-repo.git' 

Dalam hal ini, Anda perlu menentukan bahwa Anda ingin menghapus cabang, bukan tag:

 git push origin :refs/heads/branch-or-tag-name 

Demikian pula, untuk menghapus tag, bukan cabang, Anda harus menggunakan:

 git push origin :refs/tags/branch-or-tag-name 
60
29 июля '14 в 12:02 2014-07-29 12:02 jawabannya diberikan Amiramix 29 Juli, '14 pukul 12:02 2014-07-29 12:02

Saya kesal melihat balik jawaban ini, jadi saya membuat pendekatan yang mirip dengan jawaban yang sebelumnya diterbitkan crizCraig.

Berikut ini ditambahkan ke profil bash saya:

 function gitdelete(){ git push origin --delete $1 git branch -D $1 } 

Kemudian, setiap kali saya melakukan ini dengan cabang (misalnya, menggabungkan menjadi master ), saya menjalankan yang berikut di terminal saya:

 gitdelete my-branch-name 

... yang kemudian menghapus my-branch-name dari origin sebagai lokal.

48
10 февр. Jawabannya diberikan arthurakay 10 Feb. 2016-02-10 22:47 '16 pada 10:47 malam 2016-02-10 22:47

Banyak jawaban lain akan mengarah pada kesalahan / peringatan. Pendekatan ini relatif terhadap git branch -D branch_to_delete walaupun Anda mungkin masih membutuhkan git branch -D branch_to_delete jika tidak sepenuhnya digabung, misalnya, di some_other_branch .

 git checkout some_other_branch git push origin :branch_to_delete git branch -d branch_to_delete 

Menghapus tidak diperlukan jika Anda menghapus cabang yang dihapus. Itu hanya digunakan untuk mendapatkan kontrol jarak jauh paling canggih yang tersedia di penyimpanan yang Anda lacak. Saya perhatikan bahwa git fetch akan menambah konsol, bukan menghapusnya. Berikut adalah contoh ketika git remote prune origin benar-benar melakukan sesuatu:

Pengguna A melakukan >

 git fetch git remote prune origin git branch -r 
47
27 нояб. Jawabannya diberikan oleh Brandon Cook 27 November. 2013-11-27 06:04 '13 pada 6:04 2013-11-27 06:04

Sebelum tampil

 git branch --delete <branch> 

pastikan bahwa Anda terlebih dahulu menentukan apa EXACT adalah nama cabang jarak jauh dengan menjalankan:

 git ls-remote 

Ini akan memberi tahu Anda apa yang harus dimasukkan PERSIS untuk nilai <branch> . (case sensitif branch !)

44
21 мая '16 в 0:42 2016-05-21 00:42 jawaban yang diberikan oleh joey pada 21 Mei '16 pada 0:42 2016-05-21 00:42
 git push origin :bugfix # Deletes remote branch git branch -d bugfix # Must delete local branch manually 

Jika Anda yakin ingin menghapusnya, jalankan

 git branch -D bugfix 

Sekarang sedang membersihkan cabang remote yang jauh sedang ber>

 git remote prune origin 
43
21 апр. jawabannya diberikan Vivek 21 April. 2016-04-21 19:49 '16 pada 19:49 2016-04-21 19:49

Hancurkan semua jawaban lainnya. Membutuhkan Ruby 1.9.3+ , hanya diuji pada OS X.

Beri nama file ini git-remove , buatlah itu dapat dieksekusi, dan letakkan di jalur Anda. Kemudian gunakan, misalnya, git remove temp .

41
20 нояб. jawabannya diberikan Dan Rosenstark 20 nov. 2013-11-20 00:02 '13 pada 0:02 2013-11-20 00:02
  • 1
  • 2

Pertanyaan lain tentang tag atau Ajukan Pertanyaan