Bạn có thể sử dụng
$ git rm --cached ./whatever1.txt
sau khi một cái gì đó đã được dưới sự kiểm soát phiên bản.
Trong thực tế, nếu bạn có "whatever1.txt" dưới sự kiểm soát phiên bản và bạn muốn loại bỏ nó từ git, nhưng để lại cây làm việc của bạn không bị ảnh hưởng, sau đó chỉ cần làm điều này:
$ git rm --cached ./whatever1.txt
$ echo /whatever1.txt >> ${PROJECT_ROOT}/.gitignore
$ git status # this will now show ./whatever1 as "deleted" (from git, not your working tree, and will show gitignore as modified or created)
$ git commit -a
Và đó là nó.
Chỉ sử dụng
$ git rm
khi bạn muốn loại bỏ các tập tin từ cả hai cây làm việc VÀ repo git.
CAVEAT: Kịch bản có khả năng bạn sẽ sử dụng điều này là để xóa các tệp IDE cụ thể khỏi git. Trong ví dụ này "whatever1" đại diện cho (các) tệp IDE bạn đang xóa. Nếu bạn đang làm việc trên một dự án với một số người và bạn đẩy changeset này vào một repo được chia sẻ, thì các tệp "./whatever1" của họ S DEL ĐƯỢC XÓA khi họ kéo changeset này. Điều dễ dàng để làm từ đây cho người dân vào cuối nhận là:
$ git checkout 1215ef -- ./file-you-want-to-restore ./another-file ./another-etc
(nơi 1215ef đại diện cho cam kết cuối cùng trước khi xóa)
này có tác dụng khôi phục những file mà đã có mặt tại cam kết cuối cùng của họ trước khi kéo.Sau khi họ đã làm điều này những tập tin đó sẽ được an toàn và không hiển thị như b/c không cam kết họ sẽ thuộc loại trừ gitignore.
Chúc may mắn!
Ý của bạn là "đi cam kết thay đổi của tôi"? Các tệp không được bỏ qua không hiển thị chỉ hiển thị với "trạng thái git" và như vậy –
Nó có thể là một câu hỏi ngớ ngẩn, nhưng bạn đã bao giờ cam kết .perspectivev3 trước đây hoặc thêm nó vào chỉ mục trước khi bạn cập nhật tệp gitignore của mình chưa? –