2014-06-19 14 views
8

Tôi biết điều này đã được yêu cầu, tôi đã nhìn thấy phản hồi của tôi trên đó, nhưng không có gì có vẻ hiệu quả.Git: Không thể xóa chi nhánh từ xa vĩnh viễn

Đây là luồng công việc của tôi. Tạo một chi nhánh mới và làm việc trên đó. Đôi khi tôi sử dụng nhiều máy tính nên tôi đã đẩy nó vào điều khiển từ xa để có thể lấy nó ở nơi khác

git branch new_branch 
git checkout new_branch 
git push -u origin new_branch 

Làm một số công việc của tôi trên một trong nhiều máy tính sau đó hợp nhất để làm chủ và đẩy.

git checkout master 
git merge new_branch 

Bây giờ tôi muốn xóa chi nhánh.

git branch -d new_branch (this works fine and when I run 'git branch' it only shows local master 
git branch -r -d origin/new_branch (now on this computer when i run 'git branch -r' it's gone like it should be) 

Nhưng sau khi tôi xóa các chi nhánh ở xa, không có vấn đề mà máy tính Tôi đang trên nếu tôi git pull 'hoặc 'git fetch' nó lại kéo new_branch đó. Tôi đã thử tất cả các lệnh prune tôi thấy và tất cả mọi thứ. Nhưng nó vẫn tiếp tục xuất hiện.

Trả lời

16

Bạn phải thực hiện việc này để xóa chi nhánh trên điều khiển từ xa.

git push origin --delete new_branch 

Thao tác này sẽ xóa chi nhánh có tên new_branch khỏi kho từ xa. (new_branch là một nhánh địa phương trên điều khiển từ xa. Để đặt nó theo cách khác, nếu bạn có thể cd vào kho lưu trữ từ xa, làm cho nó trở thành kho lưu trữ cục bộ, nó sẽ có một nhánh cục bộ được gọi là new_branch. lệnh trên.)

Khi bạn làm

git branch -r -d origin/new_branch 

tất cả những gì đang xảy ra là bạn đang loại bỏ các con trỏ chi nhánh từ xa mà là ở kho lưu trữ tại địa phương. Lệnh cuối cùng này không thay đổi bất cứ thứ gì trong kho lưu trữ từ xa.

Sau khi đã xóa nhánh trên điều khiển từ xa (sử dụng lệnh đầu tiên ở trên), thì git remote prune origin sẽ bắt đầu hoạt động trên các máy tính khác của bạn, xóa các chi nhánh từ xa origin/new_branch.

Các vấn đề liên quan