Tôi có một kho lưu trữ git được lưu trữ ở định dạng tar.gz chứa tệp .pack trong thư mục đối tượng.
Làm thế nào tôi có thể trích xuất mã nguồn từ nó?
Tôi có một kho lưu trữ git được lưu trữ ở định dạng tar.gz chứa tệp .pack trong thư mục đối tượng.
Làm thế nào tôi có thể trích xuất mã nguồn từ nó?
Câu trả lời:
Packfiles là một trong những cách mà git lưu trữ các đối tượng (xem " Unpacking Git Packfiles "). Từ ý kiến của bạn, có vẻ như kho lưu trữ chứa nội dung của .git
thư mục, trong trường hợp đó tôi đoán rằng tarball cũng chứa các thư mục thích info
và refs
thêm vào objects
.
Vì vậy, để có được mã nguồn thực tế, chỉ cần gỡ bỏ thư mục:
tar -xvf archive.tar.gz
và di chuyển nội dung đến một thư mục có tên .git
. Nói cách khác, bạn nên kết thúc với một cây thư mục trông giống như
myproject
|-- .git
| |--objects
| | |-- pack
| | | |-- pack-cdfae92.idx
| | | |-- pack-cdfae92.pack
Điều đó sẽ "tạo" kho lưu trữ trong thư mục hiện tại của bạn. Bạn có thể xác nhận điều này bằng cách chạy git status
- nó sẽ nói rằng bạn đã xóa một loạt các tệp. Để phục hồi thư mục (nghĩa là "hủy xóa" các tệp), chỉ cần chạy git checkout master
.