2009-07-21 22 views
24

Tôi thường làm điều này:làm việc với .git/info/loại trừ quá muộn

git init 
git add . 
git commit . 

Và sau đó tôi nhận ra rằng đó là về để thêm thư mục nbproject của tôi, mà tôi muốn loại trừ/bỏ qua. Đôi khi, tôi thậm chí còn kiểm tra trong thư mục này. Tôi đã thêm nó vào .git/info/exclude trước khi chạy git add., Mọi thứ hoạt động tốt (nó bị loại trừ).

Vì vậy, sau đó tôi sửa đổi .git/info/exclude và sau đó quá muộn. git không còn tôn trọng các thay đổi đối với .git/info/exclude.

Vì vậy, câu hỏi là:

  1. Làm thế nào tôi có thể nhận được git để mất những thay đổi trong tập tin loại trừ trong checkin? (Tôi đã thử chạy git add. Một lần nữa, điều này không có ích)
  2. Giả sử tôi chọn một thư mục (hoặc tệp) mà tôi muốn loại trừ. Số bước ít nhất để đến tiểu bang tôi muốn (với tệp bị loại trừ) là gì.

Trả lời

37

Để xóa một tập tin mà bạn đã thêm nhưng không cam kết, sử dụng một lệnh như thế này:

git rm --cached file.to.remove 

này sẽ loại bỏ các tập tin từ các chỉ số, nhưng không chạm vào các tập tin trên đĩa.

Để xóa tệp (hoặc tệp) khỏi cam kết gần đây nhất, hãy sử dụng lệnh git rm --cached ở trên theo sau là git commit --amend.

+0

Tuyệt vời. Chỉ mục có tham chiếu đến kho lưu trữ hoặc nội dung sắp được đăng ký không? –

+0

"Chỉ mục" là vùng dàn dựng được cam kết với kho lưu trữ trên thao tác cam kết tiếp theo. –

+0

Tuyệt vời, tôi nhận được nó ngay bây giờ liên quan đến chỉ mục/bộ nhớ cache. Tôi thấy bạn đã cập nhật câu trả lời của bạn, nhưng tôi vẫn sẽ chờ một giờ trước khi đánh dấu câu trả lời tốt nhất :) Cảm ơn bạn đã phản ứng nhanh chóng và tuyệt vời của bạn. –

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