2012-05-11 8 views
6

Tôi đã nhìn vào cách khác nhau để triển khai các trang web sử dụng git, và tìm thấy các hướng dẫn sau:git triển khai với submodules

http://42pixels.com/blog/quick-and-dirty-git-deployment

Tôi thích ý tưởng được trình bày trong hướng dẫn này, và sẽ được quan tâm trên sử dụng nó cho các trang web của tôi, chỉ có nó dường như không hỗ trợ submodules.

Có thể thay đổi điều này để các mô-đun phụ cũng được kéo vào và cập nhật theo yêu cầu không?

Cảm ơn bạn.

CẬP NHẬT

Tôi đã làm việc về vấn đề này cho các cặp vợ chồng cuối cùng của giờ, và tôi dường như được tiến bộ, nhưng tôi vẫn không thể làm cho nó làm việc.

Tôi đã chuyển sang hướng dẫn này: http://toroid.org/ams/git-website-howto (chủ yếu là giống nhau, chỉ một vài thay đổi nhỏ) và sau khi làm theo một số lời khuyên được tìm thấy tại đây: https://stackoverflow.com/a/6636509/1049688 Tôi đã kết thúc bằng một tệp nhận được trông giống như này:

#!/bin/sh 

export GIT_WORK_TREE=/srv/www/limeblast.co.uk/htdocs_test 
export GIT_DIR=/srv/www/limeblast.co.uk/.git 
cd $GIT_WORK_TREE 

git checkout -f master 
git submodule init 
git submodule update 

này tất cả có vẻ tốt đẹp về mặt lý thuyết, và có thể thấy rằng các lệnh submodule đang chạy, nhưng tôi nhận được thông báo lỗi sau lại:

từ xa: submodule 'wordpress' (git: //github.com/WordPress/WordPress.git) đã đăng ký cho đường dẫn 'wordpress' từ xa: Submodule 'wp-content/themes/limeblastevolution/inc/cssCrush' (git: //github.com/peteboere/css-crush.git) được đăng ký cho đường dẫn 'wp-content/themes/limeblastevolution/inc/cssCrush ' từ xa: gây tử vong: cây làm việc' /srv/www/limeblast.co.uk/htdocs_test 'đã tồn tại. từ xa: Clone của 'git: //github.com/WordPress/WordPress.git' vào submodule path 'wordpress' thất bại

Bất kỳ ý tưởng? Cảm ơn bạn.

Trả lời

6

Bạn có thể thành công với git-deploy.

Nhưng nếu đó là quá nhiều tập trung on Rails hoặc nếu bạn không thể hoặc sẽ không sử dụng nó vì những lý do khác, ở đây là làm thế nào để buộc một bản cập nhật submodule trong một bài đăng cam kết nối:

git submodule init && git submodule sync && git submodule update 

Bạn phải chạy trên máy chủ; có lẽ tốt nhất để thêm nó vào tập lệnh hooks/post-receive của bạn. Nó là đơn giản BASH hoặc SH, bytheway.

+2

Cảm ơn sự giúp đỡ của bạn. Tôi đã thêm dòng đó vào tệp sau khi nhận của tôi, nhưng sau khi tải lên và thanh toán ban đầu (tất cả dường như hoạt động tốt), tôi nhận được thông báo lỗi "remote: Bạn cần phải chạy lệnh này từ sự to lớn của cây đang hoạt động. " liên quan đến các công cụ submodule. Bất kỳ ý tưởng? Chúc mừng. –