Làm thế nào để xóa tham chiếu git `refs / original / refs / Heads / master`?


35

Cái gì trong hộp tròn màu vàng?

ảnh chụp màn hình

Tôi đã thử git branch -D, git tag -dnhưng không thành công. Vậy làm thế nào để xóa nó?


1
Vui lòng xem xét việc thay đổi câu trả lời được chấp nhận cho câu trả lời của Alexey Ten được đánh giá cao và chính xác ( git update-ref -d).
Jonathon Reinhart

Câu trả lời:


11

Nó trông giống như một thẻ, vì vậy lệnh sau phải hoạt động:

git tag -d refs/original/refs/heads/master

Nhưng, vì bạn đã nói không, bạn chỉ có thể xóa tệp khỏi .gitthư mục. Từ kho lưu trữ gốc, một lệnh như thế này sẽ nhận được nó:

rm .git/refs/tags/refs/original/refs/heads/master

Đường dẫn có thể hơi khác nếu git-taglệnh không thành công, vì vậy bạn có thể muốn cd .git/refsvà tìm phần đầu vi phạm bằng cách dùng thử và lỗi. Xóa tệp sẽ xóa tham chiếu khỏi kho lưu trữ cục bộ của bạn.


2
Nó không phải là một thẻ, tuy nhiên, tôi đã tìm thấy nó như là .git/refs/original/refs/heads/master.
Xiè Jìléi

1
Sử dụng git update-refthay vì tự biến đổi nội bộ của Git. Xem câu trả lời của Alexey.
wchargein

100

Lệnh này sẽ hoạt động

git update-ref -d refs/original/refs/heads/master

Điều này làm việc cho tôi với cùng một vấn đề. Lưu ý rằng tham chiếu được lưu trữ trong một tệp có tên .git / pack-refs. Nếu bạn mở nó lên, bạn có thể thấy dòng với SHA và chuỗi "refs / original / refs / Heads / master". Bạn có thể xóa dòng đó, nhưng tôi sẽ sử dụng lệnh này để an toàn.
Matt N

14
+1: Bạn nên luôn luôn sử dụng git update-ref -dthay vì chỉ sử dụng rmref - những điều tồi tệ có thể xảy ra nếu không.
Callum Rogers

3
Đây phải là câu trả lời được chấp nhận
Daniel Alder

1
@CallumRogers tại sao?
wahnfrieden

6
@wahnfrieden vì git có thể sử dụng các ref được đóng gói và sẽ không có tệp tương ứng trong refsthư mục
Alexey Ten

17

Đây là một ref. Thông thường được tạo bởi git filter-branch- nó là một con trỏ tới nơi chi nhánh của bạn trước khi bạn chạy git filter-branch.

Và để xóa bất kỳ ref nào , bạn luôn có thể đẩy không có gì vào nó trong kho lưu trữ cục bộ:

git push . :refs/original/refs/heads/master

Các câu trả lời khác cũng bao gồm khá nhiều cách khác để xóa.


1
"Đẩy không có gì" để xóa tham chiếu cục bộ là rất thông minh.
40XUserNotFound

Làm cho ngày của tôi. Tôi đã có một tham chiếu đến một thẻ từ xa mà điều khiển từ xa không còn tồn tại. Đây là lệnh duy nhất đã làm việc.
RW4
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.