Phụ thuộc dự án Git trên GitHub


14

Tôi đã viết một khung PHP và một CMS trên đầu khung. CMS phụ thuộc vào khung, nhưng khung tồn tại dưới dạng thư mục độc lập trong các tệp CMS. Tôi muốn duy trì chúng như các dự án riêng biệt trên GitHub, nhưng tôi không muốn gặp rắc rối khi cập nhật dự án CMS mỗi khi tôi cập nhật khung. Lý tưởng nhất là tôi muốn có CMS bằng cách nào đó kéo các tệp khung để đưa vào thư mục con được xác định trước thay vì thực hiện các tệp đó.

Điều này có thể với Git / GitHub không? Nếu vậy, tôi cần biết những gì để làm cho nó hoạt động? Hãy nhớ rằng tôi đang ở một mức độ rất cơ bản về trải nghiệm với Git - Tôi có thể tạo các kho lưu trữ và cam kết sử dụng plugin Git cho Eclipse, kết nối với GitHub và đó là về nó. Tôi hiện đang làm việc một mình trong các dự án, vì vậy tôi chưa phải tìm hiểu nhiều về Git cho đến nay, nhưng tôi muốn mở nó cho những người khác trong tương lai và tôi muốn chắc chắn rằng mình đã làm đúng.

Ngoài ra, quy trình làm việc lý tưởng của tôi nên là gì cho các dự án có phụ thuộc? Bất kỳ lời khuyên về chủ đề đó cũng sẽ đánh giá rất cao. Nếu bạn cần thêm thông tin về thiết lập của tôi, chỉ cần hỏi trong các ý kiến.


Kiểm tra git Subree
Nick

Câu trả lời:


11

Đầu tiên, nếu bạn thực sự muốn sử dụng git cho việc này, thì hãy xem xét sử dụng chức năng Submodule của nó :

Hỗ trợ mô hình con của Git cho phép một kho chứa, như một thư mục con, một kiểm tra của một dự án bên ngoài. Submodules duy trì bản sắc riêng của họ; hỗ trợ mô hình con chỉ lưu trữ vị trí kho lưu trữ mô hình con và xác nhận ID, vì vậy các nhà phát triển khác đã sao chép dự án chứa ("superproject") có thể dễ dàng sao chép tất cả các mô hình con trong cùng một phiên bản. Có thể kiểm tra một phần của siêu dự án: bạn có thể yêu cầu Git sao chép không, một số hoặc tất cả các mô hình con.

Trang được liên kết chứa một cuộc thảo luận chi tiết bao gồm các ví dụ về cách sử dụng chính xác.

Điều đó nói rằng, tôi khuyên bạn không nên sử dụng hệ thống kiểm soát phiên bản của mình để quản lý phụ thuộc và thay vào đó bắt đầu sử dụng công cụ xây dựng có thể xử lý những việc này cho bạn, chẳng hạn như Maven hoặc Ant . Thậm chí còn có một công cụ xây dựng dành riêng cho PHP được phát triển có tên là Phing , nhưng tôi chưa sử dụng nó cho mình. Nó được đề cập trong một bài viết thảo luận về câu hỏi của bạn: Kiểm soát phiên bản! = Quản lý phụ thuộc .

Lý do công cụ xây dựng có thể phù hợp hơn về lâu dài là vì chúng thường hỗ trợ các loại kho lưu trữ khác nhau, thư viện bên ngoài (và các vị trí khác nhau) và kiểm tra mở rộng. Tuy nhiên, nếu bạn chỉ muốn tích hợp hai thư viện này và không muốn có thêm rắc rối nào, thì phương pháp mô hình con có lẽ là đủ.


+1 - Cảm ơn Deckard. Tôi hình dung Git có thứ gì đó giống như Submodules, tôi chỉ không biết nó được gọi là gì. Tôi chắc chắn sẽ nhìn lâu về Phing. Tôi đã muốn có một công cụ xây dựng PHP để quản lý các phụ thuộc, chạy thử nghiệm đơn vị và sau đó triển khai vào trang web của tôi. Có vẻ như Phing có thể làm tất cả điều đó. Có vẻ như sẽ mất một chút thời gian để tìm hiểu. Bạn có biết bất kỳ screencasts tốt nào cho Phing (Google không tử tế trong vấn đề đó) không?
VirtuosiMedia

Liên kết đến "Chức năng mô hình con" bị hỏng và liên kết đến "Kiểm soát phiên bản! = Quản lý phụ thuộc" cũng bị hỏng
Ferrybig

6

Git Submodules là một cách tuyệt vời để quản lý các phụ thuộc dự án git.

Nếu bạn đang tìm kiếm một cách tiếp cận khác:

Nhà soạn nhạc có thể làm tất cả điều này cho bạn. Trình soạn thảo là một trình quản lý phụ thuộc cho php. Đó là cú pháp của json. Nó khá dễ dàng và rẻ tiền để sử dụng.

Thông tin thêm về nhà soạn nhạc:

Trình soạn thảo là một công cụ để quản lý phụ thuộc trong PHP. Nó cho phép bạn khai báo các thư viện phụ thuộc mà dự án của bạn cần và nó sẽ cài đặt chúng trong dự án của bạn cho bạn.

Trên trang tài liệu , bạn có thể tìm thấy một ví dụ về cách tệp composer.json của bạn sẽ được xây dựng:

// Composer.json    
{

    "name": "acme/blog",
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/composer/hello-world"
        }
    ],
    "require": {
        "acme/hello-world": "dev-master"
    }
}

Khi bạn đã tạo tệp composer.json và composer.lock cho dự án của mình, bạn có thể dễ dàng cài đặt các phần phụ thuộc của mình một cách dễ dàng:

composer.phar install hoặc cập nhật chúng: composer.phar update hoặc tạo một dự án cụ thể từ packagist : composer.phar create-project acmeproject


1

Gần đây tôi bắt đầu sử dụng một công cụ có tên là Pundle để quản lý các Phụ thuộc của Dự án. Nó hỗ trợ Phiên bản PHP, Gói PEAR, Kho Git và Kho SVN dưới dạng Phụ thuộc và cho phép dễ dàng chỉ định chúng thông qua "Pundlefile".

Bạn cũng nên định cấu hình Phụ thuộc của mình để thanh toán Git / SVN được đưa vào một thư mục không thuộc Kiểm soát phiên bản (ví dụ: "nhà cung cấp") để bạn có một khởi đầu mới trên mỗi lần thanh toán và để giữ cho kho lưu trữ của Dự án của bạn gọn gàng.

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.