2013-05-17 2 views
6

git clean -f -d đã xóa các tệp khỏi thư mục cục bộ của tôi. Làm cách nào để truy xuất chúng? Tôi đã sử dụng nó để xóa các thư mục và tệp không được theo dõi và thấy rằng nó cũng đã xóa nó khỏi hệ thống tệp cục bộ của tôi. Điều này có thể không? Tôi đã làm gì sai và có cách nào để truy xuất chúng không?git clean -f -d đã xóa các tệp khỏi thư mục cục bộ của tôi

+1

"Tôi đã làm gì sai?" Điều này phụ thuộc vào những gì bạn mong đợi sẽ xảy ra. Có vẻ như 'git clean -f -d' hoạt động như được ghi lại: nó đã xóa các tập tin và thư mục không được theo dõi khỏi bản sao làm việc của bạn. Theo định nghĩa, nếu chúng không được khai thác, chúng không có trong kho, vì vậy không có nơi nào khác mà chúng có thể bị xóa. – David

Trả lời

4

Như câu trả lời trước cho biết, nếu bạn đang làm việc trên Linux, bạn không thể truy xuất chúng. Chúng biến mất: đó là điểm "git clean". Trừ khi bạn đang sử dụng một hệ thống tập tin có khả năng làm ảnh chụp nhanh nhưng sau đó, bạn có lẽ sẽ biết làm thế nào để có được chúng trở lại.

Nếu mục tiêu của bạn là để tránh nhìn thấy chúng trong "tình trạng git", bạn có hai khả năng:

Một)

git status -uno 

không in file untracked và thư mục.

B) Nếu có một tập cố định các tập tin (hoặc một mẫu tên tập tin) mà bạn sẽ không bao giờ muốn nhìn thấy trong "tình trạng git" cũng không đặt chúng dưới phiên bản, bạn có thể "bỏ qua" cho họ. Bạn chỉ cần đặt tên hoặc mẫu của chúng trong một tệp có tên ".gitignore" tại gốc của kho lưu trữ của bạn.

Điều này thường được sử dụng cho các tệp được tạo.

Ví dụ sau bỏ qua tên tập tin kết thúc bằng ".html" và tập tin gọi là "ra/myfile.txt":

*.html 
out/myFile.txt 

Xem

git help ignore 

để biết thêm.

+0

có hoạt động trên Linux. – tan

+1

Họ nói rằng có 2 loại người: những người đã mất việc vì một lệnh git sai và những người không bị mất việc * * yet ** :) – deubeuliou

+0

lưu ý rằng tất cả hy vọng không phải lúc nào cũng bị mất: nếu các tệp được mở trong trình chỉnh sửa và nếu trình chỉnh sửa đã không tự động tải lại chúng, bạn có thể lưu lại. – deubeuliou

1

Các tệp bị xóa bởi git clean không được tải xuống, điều đó có nghĩa là git không giữ thêm một bản sao nào của chúng. Nếu bạn cần truy xuất chúng, đặt cược tốt nhất của bạn là để ngay lập tức làm lại hệ thống tệp chỉ đọc và chạy bất kỳ công cụ khôi phục tệp đã xóa nào phù hợp với hệ điều hành của bạn.

1

Điều này thực sự phụ thuộc vào cách bạn xóa chúng. Trong Windows, những tập tin này chỉ nên đi vào thùng rác. Trong Linux tôi tin rằng git đang sử dụng lệnh rm nên bạn nên tìm kiếm nhanh về cách khôi phục các tập tin vô tình bị xóa bằng rm.