2011-11-23 32 views
17

Sử dụng plugin Egit, bạn có thể xóa vĩnh viễn tệp khỏi kiểm soát nguồn mà không xóa bản sao cục bộ không?Plugin Eclipse Git - xóa tệp khỏi repo mà không xóa cục bộ

I.e., có hoạt động GUI tương đương với chạy "git rm --cached" không?

(Edited để đơn giản hóa câu hỏi)

+1

Untrack tôi nghĩ có nghĩa là thay đổi không đúng. Tại sao bạn không chỉ xóa tập tin, và sau đó cam kết loại bỏ nó từ repo ngược dòng của bạn? –

+0

Tôi không muốn xóa các tệp cục bộ, tôi muốn ngăn chúng bị ghi đè bởi một lần kéo. Việc xóa và tạo lại không phải là một tùy chọn vì một số tệp và thư mục là những tệp mà Force.com IDE sẽ không cho phép bạn xóa. – naomi

+1

Mặc dù nó sẽ không xóa ** tệp khỏi kho lưu trữ, cài đặt "Giả sử không thay đổi" (Nhóm> Nâng cao) sẽ trợ giúp về vấn đề này. Hãy lưu ý đến các gotchas của thiết lập này (Xem http://schacon.github.com/git/git-update-index.html). –

Trả lời

13

Tôi đã tìm thấy câu trả lời. Team-> Untrack thực sự là tương đương với "rm --cached". Tuy nhiên có một lỗi được biết đến trong đó tạo ra hành vi lạ khi bạn untrack và sau đó cố gắng cam kết.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=363405

+0

làm thế nào tôi có thể giải quyết nó một cách thanh lịch? cảm ơn – yee

+0

Tôi không thể. Tôi đã ngừng sử dụng EGit vì điều này và một loạt các lỗi khác. Tuy nhiên đó là hơn một năm trước đây, do đó, các nhà phát triển Egit có thể đã cải thiện nó ngay bây giờ. – naomi

+2

@naomi Không. Vào tháng 4 có vẻ như họ đã quyết định rằng nó quá khó và sẽ không cố gắng khắc phục nó. – EdGruberman

0

Một tùy chọn khác, tương tự như những gì Sri Sankaran gợi ý trong các ý kiến, là để cập nhật các chỉ số để giả định không sửa đổi tập tin cấu hình của bạn:

Trên sở thích, trong Egit, bạn có thể liệt kê "giả định không thay đổi" file :

assume unchanged

các tập tin vẫn là phiên bản và trên đĩa, nhưng không sửa đổi sẽ được d được khắc phục trên đó.

+0

Cảm ơn - Tôi không thể tìm thấy tập hợp các tùy chọn đó, ở đâu? – naomi

4

tôi đã cùng một vấn đề, sau khi ban đầu không bao gồm các thư mục và tập tin trong .ignore. Tôi cũng đã thử khả năng "Untrack" và "Remove from index", không hỗ trợ (do vấn đề Egit vẫn chưa được giải quyết). Vì vậy, cuối cùng tôi đã xóa các tập tin cục bộ (để lại dự án tất cả trong các lỗi), cam kết và đẩy nó vào github, và sau đó undid xóa địa phương và các tập tin được thêm vào .ignore. Rất không lành mạnh, nhưng nó hoạt động. Tôi mất rất nhiều thời gian và thần kinh trên đó, và tôi hy vọng điều này sẽ giúp ai đó.

3
Team -> Advanced -> Untrack 

đã thực hiện công việc (git rm --cached) cho tôi.

+0

Đối với những người quan tâm đến giải pháp này ... Sau bước trên, chỉ cần cam kết và đẩy tới điều khiển từ xa của bạn và nó sẽ hoạt động giống như một nét duyên dáng ... trả lời tốt, cảm ơn rất nhiều! – labheshr

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