2012-05-05 24 views
33

Khi chạy git gc, tôi cứ nhìn thấy lỗi này:Tôi có thể/nên làm gì với lỗi git gc này? (Rm: không thể bỏ liên kết gói Permission denied)

rm: cannot unlink 'pack-30b1ff2[reset of hash].pack': Permission denied 

thể/Tôi nên làm gì về lỗi này?

Cập nhật

Xin lỗi, tôi nên đã cung cấp thêm thông tin. Có, tôi đã thử khởi động lại. Thực tế, việc khởi động lại đã khắc phục vấn đề gc cho tôi trước đây.

Tôi chỉ nhận thấy vấn đề này vì khi tôi mở Git Gui, nó sẽ nhắc tôi ngay bây giờ và sau đó nén cơ sở dữ liệu. Cuối cùng tôi nhận thấy rằng sau vài lần mở Git Gui rằng nó vẫn khiến tôi lo lắng, mặc dù tôi đã bấm Yes, và nó đã trở lại "thành công".

Vì vậy, sau đó tôi đã thử chạy nó với Cài đặt Git EXT - Bảo trì Git - Nén lệnh git database. Lệnh này nói với tôi rằng đã có một lỗi (ánh sáng đỏ trong Git EXT trong khi có một ánh sáng màu xanh lá cây trong Git Gui).

Lỗi tôi đã đăng ở trên tuy nhiên là chạy git gc trực tiếp từ git bash.

Tôi có nên lên lịch quét đĩa không? Các ngành xấu có thể gây ra điều này không? Tôi đã hy vọng đây sẽ là một câu trả lời nhanh :(

+1

Kiểm tra quyền và nếu chúng trông lành mạnh, hãy sao lưu và kiểm tra hệ thống tệp của bạn. – Mat

+0

Đây là trên các cửa sổ 7. Tôi có nên kiểm tra quyền trên thư mục .git không? Git có phải là tài khoản người dùng của tôi không? Tôi là quản trị viên và nhóm đó có toàn quyền kiểm soát trên thư mục .git. – danludwig

+0

Xin lỗi, đã giả định Linux. Tôi không bao giờ hiểu các chi tiết chính xác về quyền truy cập của windows. Nhưng bạn không nên bị lừa với tài khoản quản trị viên ngay từ đầu. – Mat

Trả lời

29

"Permission denied" trên Windows thường được gây ra bởi một ổ khóa từ một quá trình đang chạy. Nó có thể xảy ra rằng có một bị đình trệ Git EXT chủ đề mở tập tin gói.

cố gắng làm git gc trong chế độ an toàn.

lựa chọn khác là clone kho ở một nơi mới và xóa cái cũ.

+0

Cảm ơn, tôi đã hy vọng tránh phải reclone, vì vậy hy vọng chế độ an toàn sẽ làm việc. Sẽ thử khởi động lại tiếp theo. – danludwig

+1

Thậm chí không cần chế độ an toàn. Tôi chạy git gc điều đầu tiên sau khi khởi động bình thường, và không có sự cho phép bị từ chối lỗi. Cảm ơn. – danludwig

+0

@danludwig điều đầu tiên sau khi một khởi động bình thường làm việc tuyệt vời cho tôi quá! Cảm ơn gợi ý! – cregox

18

trong trường hợp của tôi đó là TortoiseGit. để giải quyết vấn đề tôi đã mở TortoiseGit Cài đặt -> Lớp phủ biểu tượng và đặt bộ đệm Trạng thái thành "Không". Bây giờ, hãy bắt đầu ss TGitCache đã kết thúc, để tất cả các đối tượng đều "miễn phí" được xử lý bởi git gc.

enter image description here

+0

Ah, thật là một con rùa ngớ ngẩn .. – Lukman

1

Bạn cần phải đóng giao diện điều khiển của bạn, nơi lệnh rằng khóa lệnh xảy ra. Điều này có thể là VI đang khóa tập tin hoặc bất kỳ lệnh nào đã bị giết. Giải pháp đơn giản nhất là đóng mọi thứ và mở lại. Bạn sẽ có thể thực thi lệnh mà không gặp vấn đề gì.

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