Menghapus cabang lokal dengan Git

135

Saya sudah googled dan ada beberapa utas yang sangat panjang tentang topik ini dan tidak ada satupun yang membantu. Saya pikir saya melakukan sesuatu yang salah. Saya memiliki cabang yang disebut Test_Branch. Ketika saya mencoba untuk menghapusnya menggunakan metode rekomendasi, saya mendapatkan kesalahan berikut:

Tidak dapat menghapus cabang 'Test_Branch' yang diperiksa di '[lokasi direktori]'.

Saya tidak mendapatkan informasi lain selain itu. Saya bisa menerbangkan cabang yang jauh dengan mudah tetapi cabang lokal tidak mau pergi.

Bob Wakefield
sumber
BTW, saya benar-benar baru di Git. Hanya digunakan selama beberapa hari terakhir. Telah mengikuti beberapa kursus online dan membaca beberapa buku dan jawabannya sepertinya juga tidak ada.
Bob Wakefield
Jika Anda mengeksekusi git branch, apa isinya?
coredump
19
Dalam gambar, inilah yang terjadi: publicdomainpictures.net/pictures/10000/velka/…
coredump
git branch memberiku * Test_Branch master
Bob Wakefield
Bintang itu memberi tahu Anda di cabang mana Anda saat ini, ini menegaskan apa yang jawabannya katakan
coredump

Jawaban:

245

Beralih ke beberapa cabang lain dan hapus Test_Branch, sebagai berikut:

$ git checkout master
$ git branch -d Test_Branch

Jika perintah di atas memberi Anda kesalahan - The branch 'Test_Branch' is not fully merged. If you are sure you want to delete itdan Anda masih ingin menghapusnya, maka Anda dapat memaksa menghapusnya dengan menggunakan -Dalih-alih-d , seperti:

$ git branch -D Test_Branch

Untuk menghapus Test_Branchdari jarak jauh juga, jalankan:

git push origin --delete Test_Branch
Arpit Aggarwal
sumber
34
Beralih cabang adalah hal yang membuat saya - tangkapan yang bagus! Anda tidak dapat menghapus cabang jika Anda aktif di dalamnya. ;-)
SliverNinja - MSFT
2
Jika Anda mencoba beberapa checkout yang berbeda dan masih mendapatkan pesan yang sama, lihat output dari git status, atau git branch; jika Anda menjalankan kembali Test_branch maka cukup memeriksa cabang / komit yang berbeda tidak akan memperbaikinya. Sebaliknya git rebase --abortkemudian git checkout --detachdan akhirnyagit branch -D Test_branch
droid
3
Bukti lebih lanjut bahwa git adalah singkatan dari "git is terrible". Semakin saya menggunakannya semakin banyak lingkaran konyol yang harus Anda lewati. Terutama karena Anda mungkin ingin beralih kembali ke cabang yang sama.
user949300
Dan bagaimana jika seseorang membalas ini, ketika mencoba mengubah cabang? error: you need to resolve your current index firstdan mereka hanya ingin MENINGGALKAN? EDIT - Solusi git reset --:; git checkout -D [branch_name]Fiuh ..
Paul
21

Anda mungkin telah memeriksa Test_Branch, dan Anda mungkin tidak menghapusnya saat itu cabang Anda saat ini. Periksa cabang yang berbeda, dan kemudian coba hapus Test_Branch.

Randy Leberknight
sumber
14

Berlari ke hari ini dan beralih ke cabang lain tidak membantu. Ternyata entah bagaimana informasi worktree saya telah rusak dan ada worktree dengan path folder yang sama dengan direktori kerja saya dengan HEADmenunjuk ke cabang ( git worktree list). Saya menghapus .git/worktree/folder yang mereferensikannya dan git branch -dberfungsi.

jinxcat2008
sumber
3

Jika Anda telah membuat beberapa worktrees dengan git worktree , Anda harus menjalankannya git prunesebelum Anda dapat menghapus cabang

dkniffin
sumber
3
lebih khusus, Anda harus menggunakangit worktree prune
Sergioet
tapi baca apa yang git pangkas lakukan, pertama - bisa menyebabkan kehilangan data
sesquipedalias
1

Ini berhasil bagi saya ...
Saya telah menghapus folder di folder .git / worktrees dan kemudian mencoba "git delete -D branch-name".

Vasu
sumber
1

Dalam kasus saya ada perubahan yang tidak dikomit dari cabang sebelumnya yang tersisa. Saya menggunakan perintah berikut dan kemudian hapus berhasil.

checkout git *

git checkout master

cabang git -D

Sankar Natarajan
sumber
0

Seperti yang disebutkan lainnya, Anda tidak dapat menghapus cabang saat ini di mana Anda bekerja.

Dalam kasus saya, saya telah memilih "Test_Branch" di Visual Studio dan mencoba menghapus "Test_Branch" dari Sourcetree (Git GUI). Dan semakin di bawah pesan kesalahan.

Tidak dapat menghapus cabang 'Test_Branch' yang diperiksa di '[lokasi direktori]'.

Beralih ke cabang berbeda di Visual Studio dan dapat menghapus "Test_Branch" dari Sourcetree.

Saya harap ini membantu seseorang yang menggunakan Visual Studio & Sourcetree .

Praveen Mitta
sumber