2013-09-04 127 views
5

Trang deployment của Yeoman mô tả quy trình cam kết thư mục xây dựng (còn gọi là "dist") cho repo, sau đó đẩy thư mục đó dưới dạng git subtree bằng lệnh sau.Tôi có thể bỏ qua thư mục xây dựng từ nhánh chính không? - Triển khai Yeoman sử dụng Git Subtree

git subtree push --prefix dist origin gh-pages

Tôi đã có mà làm việc tốt, và tôi có thể triển khai chỉ xây dựng mã từ thư mục TP từ chi nhánh xây dựng cây con của tôi (gh-trang trong ví dụ trên).

Tôi có thể ngay bây giờ .gitignore thư mục dist này từ trang cái? Nếu vậy, sẽ git subtree push --prefix dist origin gh-pages tiếp tục hoạt động?

Nếu không, làm thế nào tôi có thể tránh cam kết xây dựng nguồn để làm chủ chi nhánh, trong khi vẫn giữ nó trong một Git Subtree để triển khai? (Cần phải giữ nó trong một chi nhánh vì tôi sử dụng Capistrano cho các triển khai, trong đó, loại, dựa trên việc triển khai toàn bộ nhánh đến máy chủ.)

Trả lời

0

.gitignore file không xóa tập tin hiện tại từ các kho lưu trữ, và làm không ngăn cản bạn thực hiện các tệp bị bỏ qua. Nếu bạn bỏ qua các tệp sau khi chúng được cam kết, chúng sẽ ở trong kho của bạn bị ảnh hưởng, mặc dù các thay đổi đối với chúng sẽ bị bỏ qua. Nếu bạn muốn cam kết thay đổi đối với tệp bị bỏ qua (hoặc tệp đã được cam kết và sau đó bị bỏ qua), bạn có thể sử dụng git add -f để buộc thêm các thay đổi bị bỏ qua.

Để trả lời câu hỏi của bạn trực tiếp hơn, tôi có cảm giác rằng git subtree sẽ ổn với việc bạn xóa các tệp sau khi bạn đẩy cây con. Ngoài ra, bạn sẽ có thể chạy git checkout gh-pages để lấy chi nhánh gh-pages để cập nhật triển khai của mình.

Phương pháp thay thế: Trang bạn đã liên kết có liên kết đến git directory deploy script mà bạn có thể thấy hữu ích.

+1

Tôi thích câu trả lời này. Liên kết phương pháp thay thế đặc biệt nói, "nó không yêu cầu các tập tin được tạo ra được cam kết với nhánh nguồn." Đây có vẻ là lý do mà dự án này được tạo ra. Có lẽ điều này làm cho các đề xuất trước đây của bạn lỗi thời, nhưng tôi vẫn thích câu trả lời này. – Jarrod