Trong Git, một nhánh chỉ là một danh sách các lệnh xác nhận (hay còn gọi là: checkins). Một điều có thể hơi khó hiểu đối với người dùng mới là các chi nhánh không cần phải có tên (mặc dù trong hầu hết các trường hợp bạn muốn có một cái tên); và không có gì đặc biệt về bất kỳ chi nhánh cụ thể nào ( master
chi nhánh chỉ là chi nhánh mặc định được tạo cho bạn khi bạn khởi tạo kho lưu trữ).
Có thể bạn đã biết điều này, nhưng Git khác với một số hệ thống kiểm soát phiên bản khác như "Subversion" phổ biến, bởi vì mọi "bản sao làm việc" (theo ngôn ngữ Subversion) là một kho lưu trữ của riêng nó ... thực tế, không có gì đặc biệt đặc biệt về bất kỳ bản sao cụ thể; ngoại trừ một bản sao thường được đồng ý là bản "chính tắc" được sử dụng để lưu trữ sản phẩm cuối cùng.
Vì vậy, trở lại câu hỏi của bạn ... kho lưu trữ "chính tắc" mà bạn đã nhân bản khi bạn bắt đầu bản sao cục bộ của mình chứa một nhánh "chính" theo mặc định; và nó bị mắc kẹt xung quanh. Bây giờ, nếu bạn có quyền truy cập vào máy tính chứa kho lưu trữ chính, bạn có thể đăng nhập và chạy:
git branch -d master
Tuy nhiên, nếu bạn không thể làm điều đó, bạn vẫn có thể làm điều đó từ máy cục bộ của mình. Các git branch
lệnh có một -r
tùy chọn mà ảnh hưởng đến kho lưu trữ từ xa. Nói cách khác, chạy lệnh sau sẽ hoạt động:
git branch -d -r master
Lưu ý rằng trong cả hai trường hợp đó; Tôi giả định rằng nó master
đã được hợp nhất hoàn toàn vào lịch sử phát triển mà bản sao địa phương của bạn hiện đang ngồi. Nếu bạn chưa từng sử dụng master
trước đây (nghĩa là: bạn chỉ từng đăng ký development
hoặc production
), bạn không có gì phải lo lắng. Tuy nhiên, nếu bạn (hoặc người khác) đã kiểm tra mọi thứ master
, thì bạn có thể gặp vấn đề. Bạn có thể buộc xóa bằng cách thay đổi -d
thành -D
trong các lệnh trên; nhưng tôi rất khuyên bạn nên kiểm tra để xem những gì master
trước! Nếu bạn không có quyền truy cập vào máy tính từ xa, có lẽ bạn sẽ không thể khôi phục nó!
Nhân tiện; nếu bạn (hoặc bất kỳ ai khác) chưa quen với Git, tôi khuyên bạn nên đọc Git từ dưới lên của John Wiegley . Mặc dù tôi đã sử dụng Git một chút trước khi tìm thấy bài viết này, tôi không thực sự hiểu nó hoạt động như thế nào cho đến khi tôi đọc nó. Nó khá hữu ích!
git branch -d -r master
không còn xóa chi nhánh từ xa - nó sẽ xóa kiến thức bản sao địa phương của bạn về chi nhánh từ xa. Lần sau bạngit fetch
, chi nhánh sẽ trở lại! Thay vào đó, bạn sẽ muốn chạygit push origin :master
. Về cơ bản những gì bạn đang làm ở đây là đẩy một nhánh null (tên nhánh trống sang bên trái:
) phía trên nhánh từ xa (tên nhánh ở phía bên phải:
), xóa nó một cách hiệu quả.