2012-08-08 16 views
5

Tôi đang cố gắng tìm ra cách thực hiện các bước sau (và tìm hiểu xem điều đó có thể xảy ra hay không).Git sparse-checkout trên điều khiển từ xa với tập lệnh sau khi nhận

Tôi có một repo git cục bộ với một số thư mục cho nhiều thứ, nhưng tôi muốn có thể triển khai trang web của tôi với git đến máy chủ phát triển của tôi và thực sự chỉ nội dung của một thư mục mới được chuyển vào webroot từ xa (chỉ là nội dung của thư mục chứ không phải chính thư mục, đó là bit khó khăn). Tôi có lệnh git push đến máy chủ dev đi vào một repo trống bên ngoài các thư mục có thể truy cập web, và sau đó tôi đang sử dụng một kịch bản sau khi nhận để đặt tất cả các tệp đang làm việc vào webroot. Tuy nhiên, điều này sao chép tất cả các thư mục và rõ ràng là tôi chỉ muốn nội dung của một thư mục cụ thể để di chuyển sau khi hoạt động được hoàn thành.

Thực hiện một số nghiên cứu, có vẻ như việc kiểm tra thưa thớt sẽ phù hợp. CẬP NHẬT: Tôi có nó làm việc bây giờ, nơi nó sẽ sao chép chỉ là một thư mục cụ thể, nhưng tôi vẫn chưa nhận được nó để bỏ qua các thư mục chính nó và chỉ cần kéo các nội dung. Tôi hình này là một cái gì đó phải làm với các đường dẫn/ký tự đại diện tôi thêm vào .git/info/sparse-checkout, nhưng tôi không chắc chắn mẫu là gì để loại trừ một thư mục nhưng không loại trừ nội dung của nó.

Có cách nào tốt để thực hiện việc này không? Tôi có nên sử dụng kịch bản sau khi nhận để tự sao chép nội dung của thư mục mà tôi muốn thay vì cố gắng thực hiện trực tiếp bằng thanh toán thưa thớt không?

Tôi rất biết ơn vì bất kỳ trợ giúp nào mà mọi người sẵn sàng cung cấp. Cảm ơn!

+0

Sau khi xem xét thêm, tôi tin rằng bạn không thể kéo nội dung ra khỏi thư mục bằng cách thanh toán thưa thớt. Bạn có thể chọn những thứ anh đào bên trong một thư mục, nhưng cấu trúc thư mục dường như vẫn nguyên vẹn bất kể bạn làm gì. Tôi tìm thấy một cách mà làm việc cho tôi trong tình hình của tôi, nhưng xin vui lòng nếu có ai tìm ra cách để làm điều này đáp ứng với chủ đề này. Cảm ơn! – user1193694

Trả lời

0

Một cách tiếp cận đơn giản sẽ là:

  • làm checkout thưa thớt trong một /tmp/YourRepo/Yourdirectory (với YourDirectory là một trong những bạn đang cố gắng để bỏ qua, vì chỉ có nội dung của nó là quan tâm)
  • di chuyển nội dung của /tmp/Yourdirectory qua đúng thư mục đích
+0

Tôi nghĩ về điều đó, nhưng tôi nghĩ rằng có thể có một số lợi ích tốc độ từ thanh toán trực tiếp vào webroot, mặc dù tôi chỉ có thể suy nghĩ về nó không chính xác. Nếu tôi có một bộ sưu tập các tệp trong webroot và tôi cập nhật vào cùng một vị trí, tôi sẽ không cập nhật các tệp đã thay đổi trong webroot từ cam kết hay tôi đang làm bản sao đầy đủ với bài đăng - móc móc sao? (GIT_WORK_TREE =/my/directory). Tôi giả sử nếu tôi đi đến/tmp tôi luôn luôn được làm một bản sao cây đầy đủ hơn là chỉ cập nhật các tập tin đã thay đổi? – user1193694

Các vấn đề liên quan