Kịch bản này xuất hiện khi bạn - hoặc lực lượng lớn hơn bạn - có xé một tập tin trong repo địa phương của bạn và bạn chỉ muốn khôi phục một bản sao mới của phiên bản mới nhất của nó từ repo. Chỉ cần xóa tệp bằng/bin/rm (không phải git rm) hoặc đổi tên/ẩn nó và sau đó phát hành git pull
sẽ không hoạt động: git thông báo sự vắng mặt của tệp và giả định bạn có thể muốn nó thoát khỏi repo (git diff
sẽ hiển thị tất cả các dòng đã xóa từ tệp bị thiếu).
git pull
không khôi phục tập tin cục bộ mất tích luôn tôi thất vọng về git, có lẽ vì tôi đã bị ảnh hưởng bởi hệ thống kiểm soát phiên bản khác (ví dụ svn update mà tôi tin rằng sẽ khôi phục các file đã bị ẩn tại địa phương).
git reset --hard HEAD
là một cách khác để khôi phục tệp quan tâm vì nó ném đi mọi thay đổi không được cam kết mà bạn có. Tuy nhiên, như đã lưu ý here, git reset là một lệnh nguy hiểm tiềm ẩn nếu bạn có bất kỳ thay đổi không được cam kết nào khác mà bạn quan tâm.
Chiến lược git fetch ... git checkout
được ghi chú ở trên bởi @chrismillah là một cách phẫu thuật tốt để khôi phục tệp được đề cập.
Bản sao có thể có của [Chỉ có thể lấy một tệp trong Git?] (Http://stackoverflow.com/questions/16230838/is-it-possible-to-pull-just-one-file-in- git) –
Bản sao có thể có của [Cách thanh toán chỉ một tệp từ kho git?] (http://stackoverflow.com/questions/2466735/how-to-checkout-only-one-file-from-git-repository) –