Tôi vô tình xóa .git/index
, có cách nào để khôi phục không? Nó bị xóa vĩnh viễn. Tôi chưa cam kết gì cả.Cách khôi phục `.git/index` cục bộ?
Trả lời
Tôi không nghĩ rằng có thể, không phải thông qua git
anyway (bạn có thể thử tìm trong thư mục Thùng rác của bạn hoặc bất kỳ phương tiện phục hồi cung cấp tệp của bạn). Tuy nhiên, bạn sẽ nhận được chỉ mục mới ngay khi bạn git add
điều gì đó hoặc thực hiện điều gì đó khác yêu cầu chỉ mục.
Nếu bạn đã mất bất kỳ tệp nào mà bạn đã truy cập ./git/objects (find .git/objects/ -type f |sed 's:\.git/objects/::; s:/::'
), hãy kiểm tra nội dung của mỗi tệp bằng git cat-file -p $the_hash
và sau khi bạn tìm thấy tệp bị mất , chuyển hướng đầu ra đến một tệp.
(Khi bạn git add
, một mục filename đi vào .git/index
và các nội dung tập tin được lưu trữ trong .git/objects/
. Index Git được làm bằng các mục tên tập tin của một-sẽ là đối tượng cây đó được tạo ra khi bạn commit
. Bạn có thể xem một biểu diễn có thể đọc được của con người với chỉ số git ls-files --stage
).
Chỉ mục có nhiều thứ hơn một chút trong đó, nhưng có, về cơ bản nó là một bộ đệm của tên-và-băm-es. Đối với một số tính đầy đủ, điều đáng nói đến là chỉ mục có bốn "vị trí" cho mỗi tên: các vị trí 1-3 chỉ được sử dụng trong quá trình hợp nhất xung đột và vị trí số 0 là nơi mục nhập thông thường, cam kết tiếp theo thực hiện. – torek
Bạn có thể khôi phục chỉ mục như lần thanh toán cuối cùng với git reset
. Bất kỳ nội dung nào bạn đã thêm từ đó vẫn được thêm vào, nó nằm trong kho lưu trữ, nhưng chỉ mục là nơi duy nhất ghi lại liên kết đường dẫn và nội dung. Bạn có thể có git fsck thả các đối tượng không thể truy cập vào một thư mục bị mất, xem its docs, sau đó là con đường nhanh nhất trên lãnh thổ quen thuộc là chỉ thả nội dung trở lại trong worktree và thêm nó một lần nữa, git sẽ không trùng lặp nội dung nhưng nó sẽ khôi phục mục nhập chỉ mục.
Để xây dựng lại các tập tin chỉ mục, bạn có thể thử hai lệnh dưới đây:
git reset # re-scan the working directory
git add -u # update the index
- 1. cách khôi phục thư mục đã xóa cục bộ?
- 2. Khôi phục mật khẩu SVN từ bộ nhớ cache cục bộ
- 3. Lưu và khôi phục ứng dụng và bố cục
- 4. id phiên khôi phục
- 5. có cách nào để khôi phục hbase
- 6. Cách xuất và khôi phục HSQLDB
- 7. cách khôi phục (x, mô-đun)?
- 8. Cách khôi phục tệp từ chỉ mục
- 9. Cách khôi phục cửa sổ bằng Xlib?
- 10. Mercurial: Cách khôi phục sau khi rebase
- 11. Cách lưu và khôi phục biểu mẫu?
- 12. Cách khôi phục SKPaymentTransactions bị thiếu?
- 13. Mongodb khôi phục sự cố
- 14. Khôi phục IP/Cổng từ Bộ mô tả Socket
- 15. golang: không thể khôi phục từ lỗi ngoài bộ nhớ
- 16. Khôi phục lỗi phân bổ bộ nhớ động
- 17. Khôi phục bộ nhớ cache CPU cho mã C# .net?
- 18. Delphi - Thu nhỏ & khôi phục sẽ giải phóng bộ nhớ?
- 19. Khôi phục kết nối Hibernate
- 20. Khôi phục Sao lưu Vim
- 21. Khôi phục WindowState từ Minimized
- 22. khôi phục kho git từ bó backup
- 23. Khôi phục trạng thái OpenGL
- 24. Khôi phục mô hình TensorFlow
- 25. postgresql- khôi phục tệp .dump
- 26. Mercurial: khôi phục các tệp
- 27. Phục vụ ảnh động được tạo bằng cách sử dụng thiết bị khôi phục
- 28. Khuôn khổ thực thể - cách phát hiện ngoại lệ có thể khôi phục và không thể khôi phục
- 29. Khôi phục thông báo lỗi json khôi phục từ máy chủ
- 30. Khôi phục cơ sở dữ liệu trên Heroku từ kết xuất cục bộ bằng Ứng dụng đám mây
do đó, một kho sạch của nó - chỉ cần xóa toàn bộ thư mục và tạo ra một repo mới? –
Bạn đã thêm bất kỳ thứ gì vào chỉ mục chưa? Có phiên bản cụ thể của các tập tin mà bạn muốn phục hồi đã được tổ chức nhưng khác với bản sao mà bây giờ là trên cây làm việc? –