2015-09-22 21 views
12

Tôi đang làm theo hướng dẫn trên Github (https://help.github.com/articles/remove-sensitive-data/) để dọn dẹp kho lưu trữ lộn xộn. Tôi đã xóa thành công tất cả các tệp .csv bằng cách sử dụngXóa tệp khỏi lịch sử git - lỗi sửa đổi kém

git filter-branch --force --index-filter \ 
'git rm --cached --ignore-unmatch *.csv' \ 
--prune-empty --tag-name-filter cat -- --all 

Và bây giờ cần phải xóa tất cả các tệp .docx. Tuy nhiên, khi tôi sử dụng chính xác lệnh tương tự với * .docx thay vào đó, tôi nhận được thông báo lỗi:

Tôi đã đẩy bản gốc lên github và nhân bản một bản sao mới trước khi thực hiện lần cập nhật thứ hai này. Tôi không chắc chắn những gì tôi đang làm sai/khác nhau gây ra lỗi này. Bất kỳ sự trợ giúp nào được đánh giá cao :)

Trả lời

12

Giải quyết ... Tôi đã lấy không gian sau dấu gạch chéo ngược mà tôi đã đặt trước phần --prune-empty và nó hoạt động như mong đợi ngay bây giờ! Không có ý tưởng tại sao nó hoạt động mặc dù ....

+1

Tôi không biết tại sao điều này hoạt động, nhưng nó đã làm. – AdamMc331

+0

Bạn đá bro. Cứu cuộc đời tôi. :) Bạn phải đối mặt với vấn đề cả ngày vì điều này. Tôi chạy lệnh bỏ qua phần '--prune-empty --tag-name-filter cat - --all' và mọi thứ diễn ra chính xác. ngoại trừ nó tạo ra vấn đề cam kết kép. –

+0

Tôi nghĩ điều này cũng không rõ ràng từ tài liệu của họ. Như, lệnh được chia thành 3 dòng và chúng tôi tự nhiên giả sử có một khoảng trống sau dòng thứ hai. Nếu chúng ta không giả định rằng, chúng tôi chắc chắn đặt một không gian sau khi dòng 1 sau đó. Sự lãng phí thời gian này là vấn đề. –

5

Tôi đã gặp lỗi tương tự (fatal: bad revision 'rm') khi chạy nó từ dòng lệnh Windows và tôi không thể giải quyết việc xóa không gian như bạn đã làm.

Nhưng tôi có thể giải quyết nó chạy cùng lệnh chính xác từ dòng lệnh git bash. Có thể điều này có thể giúp ai đó với cùng một vấn đề.

+0

Giúp tôi. Đã phải loại bỏ không gian cũng nhưng sau đó tốt để đi. Cảm ơn. –

+0

Cảm ơn! Chuyển sang git-bash đã làm việc cho tôi –

20

Git sẽ chạy từ cmd.exe hoặc bash.

Sự cố là sử dụng ' trong lệnh của bạn. Windows chỉ sử dụng ". Lệnh bạn đang tìm kiếm là:

git filter-branch --force --index-filter \ 
"git rm --cached --ignore-unmatch *.csv" \ 
--prune-empty --tag-name-filter cat -- --all 
+0

Điều này sẽ tạo ra rất nhiều ý nghĩa! Đáng buồn là tôi không có máy cửa sổ nữa để kiểm tra điều này, nhưng hy vọng hữu ích cho người khác :) – Froom2

+1

Đây là câu trả lời của Windows – dss539

+0

Đã lưu cuộc sống của tôi, trên Windows. :) –

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