Xóa tệp hiện có khỏi Repit Git


Câu trả lời:


143

Chỉ cần đưa ra câu trả lời đầy đủ cùng một lúc:

  1. từ klemens: Bạn cần thêm tệp vào .gitignore tệp ở đâu đó phía trên tệp không mong muốn trong repo. I E

    $ cd $ cat >> .gitignore Development.log Cd

  2. từ m. narebski: Sau đó, bạn cần xóa tệp khỏi repo bằng cách thực hiện " git rm --cached <file>và sau đó thực hiện xóa này"

Nếu bạn cũng hy vọng làm cho repo trông như thể nó chưa bao giờ theo dõi tệp đó, thì điều đó phức tạp và nản lòng hơn nhiều vì nó không chỉ tạo ra các cam kết hoàn toàn mới cho mỗi cam kết trong lịch sử của bạn, do đó phá hủy khả năng tương tác theo cách khó chịu giữa những người khác đã nhân bản repo của bạn, nhưng nó cũng để lại một trong những cam kết đó chưa được kiểm tra (giả sử bạn kiểm tra cam kết của mình trước khi thực hiện chúng).

Với suy nghĩ đó, công cụ bạn đang tìm kiếm nếu đó là mục tiêu của bạn filter-branch. Ví dụ đầu tiên thực hiện chính xác những gì tôi đang mô tả.


3
sử dụng git rm --cached dường như không chỉ loại bỏ nó nhánh của tôi, mà khi tôi kéo sang một hệ thống khác, nó sẽ xóa các tệp vật lý trên hệ thống đó. Có ai biết chuyện gì đang xảy ra ở đó không?
biagidp

2
Đáp lại những điều trên: Tôi tin rằng vấn đề nằm ở chỗ tôi không có .gitignore thay thế trên hệ thống thay thế trước khi thực hiện các thay đổi, vì vậy việc xóa đã xóa bản sao cục bộ. Ít nhất đó là lý thuyết
biagidp

53

Để dừng theo dõi tập tin, chỉ cần sử dụng git rm --cached <filename>.

Nhưng như được chỉ ra bởi những người khác ở đây, việc thêm tệp vào .gitignore có thể ngăn bạn vô tình thêm lại nó sau này.


1

thêm tập tin gitignore.

xem http://git-scm.com/docs/gitignore


13
Đây chỉ là một nửa câu trả lời. .gitignoremục không áp dụng cho các tập tin đã được theo dõi.
CB Bailey

10
Phần thứ hai là git rm --cached <file>và sau đó đưa ra loại bỏ này.
Jakub Narębski

1
Tại sao không có lệnh đơn giản để git đánh giá lại tất cả các tệp hiện đang được theo dõi theo tệp .gitignore hiện tại? ... hay điều đó gây ra quá nhiều ý nghĩa thông thường? : p
Alexander - Phục hồi lại
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.