Làm thế nào để trích xuất mã nguồn từ tập tin gói git?


0

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ó?


git-archive chỉ là một chức năng để nén / tar một kho lưu trữ / cam kết - vậy vấn đề chính xác là gì? git-scm.com/docs/git-archive <- tài liệu.
rác thực phẩm

Một trong những đối tác của tôi đã tạo một kho lưu trữ git và tôi thấy .pack trong tệp tarball. Sau khi thực hiện một số nghiên cứu, tôi đã tìm ra cách để giải nén tệp .pack nhưng làm cách nào tôi có thể lấy mã nguồn của dự án?
Ashit Vora

Điều gì xảy ra khi bạn chỉ đơn giản giải nén tệp .tar? Nó liệt kê những gì? Chỉ là tập tin .pack, hoặc các tập tin khác?
rác thực phẩm

Nó có một buch các thư mục và một trong số đó là thư mục "object" chứa tệp .idx và .pack.
Ashit Vora

Sau đó, tôi giả sử đây là một cái gì đó như thế này: reviversoft.com/file-extensions/pack
rác Foodjunkie

Câu trả lời:


1

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 .gitthư 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 inforefsthê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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.