Xóa một chi nhánh địa phương với Git


134

Tôi đã googled và có một số chủ đề rất dài về chủ đề này và không ai trong số họ dường như giúp đỡ. Tôi nghĩ rằng tôi đang làm gì đó sai. Tôi có một chi nhánh được gọi là Test_Branch. Khi tôi cố gắng xóa nó bằng phương pháp đề xuất, tôi gặp lỗi sau:

Không thể xóa chi nhánh 'Test_Branch' đã kiểm tra tại '[vị trí thư mục]'.

Tôi không nhận được thông tin nào khác ngoài điều đó. Tôi có thể thổi bay chi nhánh từ xa dễ dàng nhưng chi nhánh địa phương sẽ không biến mất.


BTW, tôi hoàn toàn mới với Git. Chỉ được sử dụng trong vài ngày qua. Đã tham gia một vài khóa học trực tuyến và đọc một vài cuốn sách và câu trả lời dường như cũng không có.
Bob Wakefield

Nếu bạn thực thi git branch, nó nói gì?
coredump

19
Trong ảnh, đây là những gì đang xảy ra: publicdomainpictures.net/pictures/10000/velka/ mẹo
coredump

chi nhánh git mang lại cho tôi * Test_Branch master
Bob Wakefield

Ngôi sao cho bạn biết bạn đang ở chi nhánh nào, điều này xác nhận câu trả lời nói gì
coredump

Câu trả lời:


244

Chuyển sang một số chi nhánh khác và xóa Test_Branch, như sau:

$ git checkout master
$ git branch -d Test_Branch

Nếu lệnh trên gây ra lỗi cho bạn - The branch 'Test_Branch' is not fully merged. If you are sure you want to delete itvà bạn vẫn muốn xóa nó, thì bạn có thể buộc xóa nó bằng cách sử dụng -Dthay vì-d , như:

$ git branch -D Test_Branch

Để xóa Test_Branchtừ xa, thực hiện:

git push origin --delete Test_Branch

34
Chuyển đổi chi nhánh là những gì đã cho tôi - bắt tốt! Bạn không thể xóa chi nhánh nếu bạn đang hoạt động trong đó. ;-)
SliverNinja - MSFT

2
Nếu bạn thử một vài kiểm tra khác nhau mà vẫn nhận được cùng một thông báo, hãy xem kết quả đầu ra của git status, hoặc git branch; nếu bạn đang khởi động lại Test_branch thì chỉ cần kiểm tra một nhánh / cam kết khác sẽ không khắc phục điều này. Thay vào git rebase --abortđó git checkout --detachvà cuối cùnggit branch -D Test_branch
droid

3
Bằng chứng nữa là git là viết tắt của "git là khủng khiếp". Tôi càng sử dụng nó, bạn càng phải nhảy qua những cái vòng lố bịch này. Đặc biệt là vì bạn có thể muốn chuyển ngay về cùng một chi nhánh.
dùng949300

Và nếu ai đó nhận lại được điều này, khi cố gắng thay đổi chi nhánh thì sao? error: you need to resolve your current index firstvà họ chỉ muốn RỒI? EDIT - Giải pháp : git reset --; git checkout -D [branch_name]Phù ..
Paul

21

Bạn có thể đã kiểm tra Test_Branch và bạn không thể xóa nó trong khi đó là chi nhánh hiện tại của bạn. Kiểm tra một nhánh khác và sau đó thử xóa Test_Branch.


14

Chạy vào đây hôm nay và chuyển sang một chi nhánh khác đã không giúp đỡ. Hóa ra là bằng cách nào đó, thông tin về công việc của tôi đã bị hỏng và có một công việc có cùng đường dẫn thư mục với thư mục làm việc của tôi với một HEADđiểm trỏ vào nhánh ( git worktree list). Tôi đã xóa .git/worktree/thư mục đang tham chiếu nó và git branch -dlàm việc.


3

Nếu bạn đã tạo nhiều bàn làm việc với git worktree , bạn sẽ cần chạy git prunetrước khi có thể xóa chi nhánh


3
cụ thể hơn, bạn sẽ cần sử dụnggit worktree prune
Sergioet

nhưng hãy đọc những gì git prune làm, đầu tiên - có thể dẫn đến mất dữ liệu
sesquipedalias

1

Điều này làm việc cho tôi ...
Tôi đã xóa các thư mục trong thư mục .git / worktrees và sau đó thử "git xóa -D tên chi nhánh".


1

Trong trường hợp của tôi, có những thay đổi không được cam kết từ chi nhánh trước đó kéo dài xung quanh. Tôi đã sử dụng các lệnh sau và sau đó xóa làm việc.

kiểm tra git *

chủ thanh toán git

chi nhánh git -D


0

Giống như những người khác đã đề cập, bạn không thể xóa chi nhánh hiện tại mà bạn đang làm việc.

Trong trường hợp của tôi, tôi đã chọn "Test_Branch" trong Visual Studio và đang cố xóa "Test_Branch" khỏi Sourcetree (GUI Git). Và đã nhận được thông báo lỗi dưới đây.

Không thể xóa chi nhánh 'Test_Branch' đã kiểm tra tại '[vị trí thư mục]'.

Chuyển sang chi nhánh khác trong Visual Studio và có thể xóa "Test_Branch" khỏi Sourcetree.

Tôi hy vọng điều này sẽ giúp được ai đó đang sử dụng Visual Studio & Sourcetree .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.