Làm cách nào để xóa nguồn gốc / chủ trong Git


10

Tôi không thể xóa origin/masterkhỏi máy chủ của mình. Không biết tại sao.

Ảnh chụp màn hình của thiết bị đầu cuối của tôi

Thông báo lỗi như sau

remote: error: By default, deleting the current branch is denied, because the next
remote: error: 'git clone' won't result in any file checked out, causing confusion.
remote: error: 
remote: error: You can set 'receive.denyDeleteCurrent' configuration variable to
remote: error: 'warn' or 'ignore' in the remote repository to allow deleting the
remote: error: current branch, with or without a warning message.
remote: error: 
remote: error: To squelch this message, you can set it to 'refuse'.
remote: error: refusing to delete the current branch: refs/heads/master
To acanzian@elab.ecn.purdue.edu:/export/home/a/elabshare/git/ID-check.git
 ! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to 'acanzian@elab.ecn.purdue.edu:/export/home/a/elabshare/git/ID-check.git'

Không, tôi không sử dụng Github .


1
Tại sao bạn muốn làm điều đó? Có các chi nhánh khác?
Daniel B

Thật vậy, có những nhánh khác (thực sự kiểm tra liên kết đến hình ảnh, bạn có thể hiển thị nó cho tôi được không?). Chúng tôi đã phải nổi loạn master, và chúng tôi đã làm điều đó trên một nhánh tạm thời mà bây giờ sẽ trở thành master. Vấn đề duy nhất là tôi không biết tại sao tôi không thể giết chủ trên máy chủ.
Vào

2
Có thể không phải là câu trả lời mà bạn đang tìm kiếm, nhưng bạn có thể buộc đẩy người nổi loạn mastersang origin/master, thay thế một cách hiệu quả cái cũ bằng cái mới.
Hơi nhẹCuban

Ngoài thông báo lỗi, vui lòng gửi lệnh bạn đang sử dụng.
Kyralessa

@Kyralessa, kiểm tra ảnh chụp màn hình.
Vào

Câu trả lời:


7

Thực tế thú vị: ngay cả các kho lưu trữ từ xa là trên một chi nhánh. Bạn đang bị từ chối vì bạn đang cố xóa chi nhánh mà nguồn gốc của bạn hiện đang "kiểm tra".

Nếu bạn có quyền truy cập trực tiếp vào repo, bạn có thể mở thư mục repor shell shell và sử dụng tốt git branchđể xem nguồn gốc chi nhánh hiện đang hoạt động. Để thay đổi nó sang một chi nhánh khác, bạn phải sử dụng git symbolic-ref HEAD refs/heads/another-branch.

Nếu bạn đang sử dụng một dịch vụ như Github hoặc Gitorious, bạn sẽ phải sử dụng UI mà công cụ cung cấp cho bạn để thực hiện thay đổi (xem câu trả lời này để biết cách thực hiện điều đó trong các công cụ phổ biến).


Tuyệt vời, nó làm việc và nó đã cho tôi cơ hội tìm hiểu thêm về refstrong Git ! Cảm ơn rât nhiều! (Vâng, tôi đã biết về cách xử lý trên Github , nhưng không phải trên máy chủ cá nhân của chúng tôi.)
Atcold

12

Thay vì thực sự xóa master khỏi máy chủ, bạn có thể thay thế nó như thế này:

git push origin otherbranch:master -f

Điều đó sẽ thay thế chủ nhân bằng nội dung của otherbranch, nhưng nó vẫn sẽ được gọi là chủ trên điều khiển từ xa. Và sau đó bạn có thể kiểm tra chủ như là chủ trong địa phương của bạn.


Được rồi cảm ơn! Tôi biết tôi có thể ép buộc công cụ, nhưng tôi đã tự hỏi chính xác tại sao tôi không thể loại bỏ masterchi nhánh và câu trả lời được chấp nhận giải thích tại sao.
Vào

1
+1. Đây là cách duy nhất tôi có thể xóa một cam kết đầu tiên xấu về điều khiển từ xa / nguồn gốc / chủ.
ctn
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.