Nói rằng tôi đang ở trong kho Git. Tôi xóa một tập tin và cam kết thay đổi đó. Tôi tiếp tục làm việc và thực hiện một số cam kết hơn. Sau đó, tôi thấy tôi cần khôi phục tập tin đó.
Tôi biết tôi có thể kiểm tra một tệp bằng cách sử dụng git checkout HEAD^ foo.bar
, nhưng tôi thực sự không biết khi nào tệp đó bị xóa.
- Điều gì sẽ là cách nhanh nhất để tìm ra cam kết đã xóa một tên tệp đã cho?
- Điều gì sẽ là cách dễ nhất để đưa tập tin đó trở lại bản sao làm việc của tôi?
Tôi hy vọng tôi không phải duyệt thủ công nhật ký của mình, kiểm tra toàn bộ dự án cho một SHA cụ thể và sau đó sao chép thủ công tệp đó vào kiểm tra dự án ban đầu của tôi.
git log --diff-filter=D -- path/to/file
git checkout deletedFile
sẽ phục hồi deletedFile
nếu nó bị xóa nhưng việc xóa đó vẫn chưa được dàn dựng hoặc cam kết . Đó không phải là những gì câu hỏi ở đây đang yêu cầu; câu hỏi này là về cách khôi phục một tập tin mà việc xóa đã được cam kết nhiều lần trước.