Bagaimana cara menghapus Git branch lokal dan jarak jauh?
Saya ingin menghapus cabang, baik lokal dan jarak jauh.
Gagal untuk Menghapus Remote Branch
``bash $ git branch -d remote/asal/bugfix kesalahan: cabang 'remote/asal/bugfix' tidak ditemukan.
$ git branch -d asal/bugfix kesalahan: cabang 'asal/bugfix' tidak ditemukan.
$ git branch -rd asal/bugfix Dihapus remote branch asal/bugfix (itu 2a14ef7).
$ git push Segala sesuatu yang up-to-date
$ git pull Dari github.com:gituser/gitproject
- [new branch] bugfix -> asal/bugfix Sudah up-to-date. ``
Apa yang harus saya lakukan secara berbeda untuk berhasil menghapus
remote/asal/bugfix
cabang baik lokal dan jarak jauh?
16171
39
Ringkasan Eksekutif
Perhatikan bahwa dalam kebanyakan kasus remote nama
asal
.Menghapus Cabang Lokal
Untuk menghapus lokal cabang menggunakan salah satu dari berikut:
Catatan: The
-d
pilihan adalah alias untuk--delete
, yang hanya menghapus cabang jika sudah sepenuhnya bergabung di hulu cabang. Anda juga bisa menggunakan-D
, yang merupakan alias untuk--delete --force
, yang menghapus cabang "terlepas dari digabung status." [Sumber:pria git-cabang
]Menghapus Remote Branch [Diperbarui pada 8-Sep-2017]
Sebagai Git v1.7.0, anda dapat menghapus remote branch menggunakan
yang mungkin lebih mudah untuk diingat daripada
yang ditambahkan dalam Git v1.5.0 "untuk menghapus remote cabang atau tag."
Dimulai pada [Git v2.8.0][git-2.8.0] anda juga dapat menggunakan git push
dengan
dpilihan sebagai alias untuk
--delete`.Oleh karena itu, versi Git anda telah diinstal akan menentukan apakah anda perlu menggunakan lebih mudah atau lebih sulit sintaks.
Menghapus Remote Branch [Original Jawaban dari 5-Jan-2010]
Dari Bab 3 Pro Git oleh Scott Chacon:
Saya mengeluarkan
git push origin: bugfix
dan itu bekerja dengan indah. Scott Chacon adalah benar—saya akan ingin anjing bahwa halaman (atau hampir telinga anjing ini dengan menjawab pada Stack Overflow).[git-2.8.0]: https://github.com/git/git/blob/master/Documentation/RelNotes/2.8.0.txt
Maka anda harus melakukan ini pada mesin lainnya
untuk menyebarkan perubahan.
Matius's jawaban sangat bagus untuk menghilangkan remote cabang dan saya juga menghargai penjelasan, tetapi untuk membuat sederhana perbedaan antara dua perintah:
Untuk menghapus cabang lokal dari mesin anda:
git branch -d {the_local_branch}
(menggunakan-D
bukan untuk memaksa menghapus cabang tanpa memeriksa digabung status)Untuk menghapus remote branch dari server:
git push origin --delete {the_remote_branch}
Referensi: https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote
Jawaban Singkat
Jika anda ingin penjelasan lebih detail mengenai perintah berikut, kemudian melihat jawaban di bagian berikutnya.
Menghapus remote branch:
Menghapus sebuah cabang lokal:
Menghapus sebuah daerah terpencil-cabang pelacakan:
Jawaban Panjang: ada 3 cabang yang berbeda untuk menghapus!
Bila anda're berurusan dengan menghapus cabang, baik lokal dan jarak jauh, perlu diingat bahwa ada 3 cabang yang berbeda yang terlibat:
X
.X
.asal/X
yang melacak remote branchX
.Poster asli yang digunakan
yang hanya dihapus-nya daerah terpencil-cabang pelacakan
asal/bugfix
, dan tidak aktual remote branchperbaikan bug
padaasal
.Untuk menghapus yang sebenarnya remote branch, yang anda butuhkan
Rincian Tambahan
Bagian berikut ini menggambarkan rincian tambahan yang perlu dipertimbangkan ketika anda menghapus remote dan remote-cabang pelacakan.
Mendorong untuk menghapus remote cabang juga menghapus remote-cabang pelacakan
Perhatikan bahwa menghapus remote branch
X
dari baris perintah dengan menggunakan git push**juga akan menghapus daerah terpencil-cabang pelacakan**
asal/X, sehingga tidak perlu untuk memangkas usang remote-cabang pelacakan dengan
git fetch-pruneatau
git fetch-p`, meskipun itu tidak't salahnya jika anda tetap melakukannya.Anda dapat memverifikasi bahwa remote-cabang pelacakan
asal/X
juga dihapus dengan menjalankan perintah berikut:Pemangkasan usang lokal remote-cabang pelacakan asal/X
Jika anda didn't menghapus remote branch
X
dari baris perintah (seperti di atas), maka anda repo lokal masih akan berisi (yang sekarang usang) remote-cabang pelacakanasal/X
. Hal ini dapat terjadi jika anda menghapus sebuah remote branch langsung melalui GitHub's web interface, misalnya.Cara yang khas untuk menghapus usang remote-pelacakan cabang (sejak Git versi 1.6.6) adalah untuk hanya menjalankan git fetch
dengan
--memangkasatau pendek
-p`. Perhatikan bahwa ini akan menghapus semua usang lokal remote-cabang pelacakan untuk setiap cabang yang tidak lagi ada di remote:Berikut adalah kutipan yang relevan dari 1.6.6 catatan rilis (penekanan dari saya):
Alternatif di atas otomatis pemangkasan usang remote-cabang pelacakan
Atau, bukan pemangkasan anda usang lokal remote-cabang pelacakan melalui
git fetch-p
, anda dapat menghindari membuat jaringan ekstra operasi dengan hanya secara manual menghapus branch(es) dengan--jauh
atau-r
bendera:Lihat Juga
langkah-Langkah untuk menghapus cabang:
Untuk menghapus **remote branch:**Untuk menghapus cabang lokal, anda memiliki tiga cara:
Menjelaskan: OK, hanya menjelaskan apa yang's terjadi di sini!
Cukup lakukan
git push origin --delete
untuk menghapus branch jauh HANYA, tambahkan nama cabang pada akhir dan ini akan menghapus dan push ke remote di waktu yang sama...Juga,
git branch -D
, yang hanya menghapus cabang lokal HANYA!...-D
singkatan dari--delete --force
yang akan menghapus cabang bahkan itu's tidak digabung(force delete), tetapi anda juga dapat menggunakan-d
yang merupakan singkatan dari--delete
yang melempar kesalahan masing-masing cabang gabungan status...Saya juga membuat gambar di bawah ini untuk menunjukkan langkah-langkah:
Anda juga dapat menggunakan berikut untuk menghapus remote branch
Yang melakukan hal yang sama seperti yang
tapi itu mungkin lebih mudah untuk diingat.
Tip: Bila anda menghapus cabang-cabang yang menggunakan
atau
hanya referensi dihapus. Meskipun cabang ini benar-benar dihapus pada remote referensi untuk itu masih ada di repositori lokal dari anggota tim anda. Ini berarti bahwa untuk anggota tim lainnya dihapus cabang-cabang yang masih terlihat ketika mereka melakukan
git branch -a
.Untuk memecahkan masalah ini anggota tim anda dapat memangkas dihapus cabang dengan
Biasanya ini adalah
git remote prune asal
.Jika anda ingin menghapus cabang, pertama checkout untuk cabang lain dari cabang yang akan dihapus.
Menghapus cabang lokal:
Menghapus remote branch:
Ini adalah sederhana: Hanya jalankan perintah berikut:
Untuk menghapus Git branch baik lokal dan jarak jauh, pertama menghapus cabang lokal menggunakan perintah:
(di sini
contoh
adalah nama cabang)Dan setelah itu menghapus remote branch menggunakan perintah:
Pendekatan lain adalah:-
PERINGATAN: Ini akan menghapus semua cabang yang tidak ada secara lokal. Atau secara lebih komprehensif,
efektif akan membuat repositori jauh terlihat seperti salinan lokal dari repositori (kepala daerah, remote dan kategori yang dicerminkan pada remote).
Saya gunakan berikut saya Bash pengaturan:
Kemudian anda dapat menghubungi:
Menghapus secara lokal:
Untuk menghapus sebuah cabang lokal, anda dapat menggunakan:
Untuk menghapus cabang paksa, gunakan
-D
bukan-d
.Menghapus dari jarak jauh:
Ada dua pilihan:
Saya akan menyarankan anda menggunakan ke-2 cara seperti itu lebih intuitif.
Sejak januari 2013, GitHub termasuk Hapus cabang tombol berikutnya untuk masing-masing cabang dalam "cabang-Cabang" di halaman.
Relevan posting blog: Membuat dan menghapus cabang
Jika anda ingin menyelesaikan kedua langkah ini dengan satu perintah, anda dapat membuat sebuah alias untuk itu dengan menambahkan kode di bawah ini untuk anda
~/.gitconfig
:Atau, anda dapat menambahkan ini ke global config dari baris perintah dengan menggunakan
NOTE: Jika menggunakan
-d
(huruf kecil d), cabang hanya akan dihapus jika sudah bergabung. Untuk memaksa menghapus terjadi, anda akan perlu menggunakan-D
(huruf D).Untuk menghapus cabang anda secara lokal dan remote
Checkout untuk menguasai cabang -
git checkout master
Menghapus remote cabang -
git push origin --delete <cabang-nama>
Menghapus cabang lokal anda -
git branch --delete <cabang-nama>
Anda juga dapat melakukan ini dengan menggunakan
git remote prune asal
Ini plum dan menghapus jauh-pelacakan cabang dari
git branch -r
daftar.Selain jawaban yang lain, saya sering menggunakan git_remote_branch tool. It's ekstra pasang, tapi itu membuat anda cara yang nyaman untuk berinteraksi dengan remote cabang. Dalam hal ini, untuk menghapus:
Saya menemukan bahwa saya juga menggunakan
publish
dantrack
perintah-perintah yang cukup seringSalah satu kapal perintah delete baik lokal dan remote:
D=cabang-nama; git branch -D $D; git push origin :$D
atau tambahkan alias di bawah ini untuk anda ~/.gitconfig; penggunaan:
git membunuh branch-name
Menghapus Cabang
Dan untuk menghapus remote branch:
Menghapus remote branch
git push origin :<branchname>
Menghapus cabang lokal
git branch -D <branchname>
Menghapus cabang lokal langkah-langkah: